首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用map()放弃它的练习

问使用map()放弃它的练习
EN

Stack Overflow用户
提问于 2022-03-22 21:01:25
回答 3查看 58关注 0票数 0

我在FreeCodeCamp中回答了这个练习--这里是给定数组arr的指令删除,迭代和删除每个元素,从第一个元素(0索引)开始,直到迭代元素通过它时函数func返回true为止。

然后在满足条件后返回数组的其余部分,否则,arr应作为空数组返回。

这就是我到目前为止所拥有的。我使用map函数迭代数组的索引,然后检查它是否满足映射中函数参数的条件。在这种情况下,函数应该只返回小于3的数字,但是在返回它时我不能去掉3。

代码语言:javascript
复制
function dropElements(arr, func) {
return arr.map(x => func(x) ? x : "");
}
console.log(dropElements([1, 2, 3], function(n) {return n < 3; }));
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-03-22 21:21:45

您可以对布尔值进行闭包,并为数组的其余部分保留一个true值以进行筛选。

数据来源/结果:https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/drop-it

​

代码语言:javascript
复制
function dropElements(arr, func) {
  return arr.filter((b => v => b ||= func(v))(false));
}

console.log(...dropElements([1, 2, 3], function(n) { return n < 3; }));       // [1, 2, 3]
console.log(...dropElements([1, 2, 3, 4], function(n) { return n >= 3; }));   // [3, 4]
console.log(...dropElements([0, 1, 0, 1], function(n) { return n === 1; }));  // [1, 0, 1]
console.log(...dropElements([1, 2, 3], function(n) { return n > 0; }));       // [1, 2, 3]
console.log(...dropElements([1, 2, 3, 4], function(n) { return n > 5; }));    // []
console.log(...dropElements([1, 2, 3, 7, 4], function(n) { return n > 3; })); // [7, 4]
console.log(...dropElements([1, 2, 3, 9, 2], function(n) { return n > 2; })); // [3, 9, 2]

​

票数 1
EN

Stack Overflow用户

发布于 2022-03-22 21:09:37

建议使用筛选器,它返回另一个数组:

​

代码语言:javascript
复制
function dropElements(arr) {
  return arr.filter(x => x < 3);
}

const someArray = [1, 2, 3];
console.log(dropElements(someArray)); // [1, 2]

​

票数 1
EN

Stack Overflow用户

发布于 2022-03-22 21:14:40

它写着“删除元素”,所以我将对传入的数组进行变异。

​

代码语言:javascript
复制
function dropElements(arr, func) {
  while (arr.length && !func(arr[0])) {
    arr.splice(0, 1);
  }
  return arr;
}

console.log(dropElements([1, 2, 3], function(n) {return n < 3; }));

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71578889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档