javascript中对数组元素筛选并clone出新的数组

我想要根据某些条件筛选一个数组并clone到一个新的数组。
请问除了遍历数组筛选再依次添加到一个新的数组,还有没有简单的写法?

PS:Object.assign好像也只能接受一个变量而不是函数的返回值

var clone = Object.assign([], function(arr){
    //do something
    return arr[i]
});
阅读 4.7k
1 个回答

可以用filter

var array = [1, 2, 3, 5];

var array2 = array.filter(function(v) {
    return v >= 3; // 自定义过滤函数,这里是只保留数组中>=3的项
});

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter


补充回答:

单靠filter做不到这一点,可以先用filter过滤出所需的元素,再用map处理一下每个元素:

array.filter(...).map(function(v) {
    return v + 1; // 自定义要对数组的每个元素所做的操作即可。这里是给每个元素加1
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题