当前位置:  开发笔记 > 编程语言 > 正文

JavaScript Array.filter无法按预期工作

如何解决《JavaScriptArray.filter无法按预期工作》经验,为你挑选了1个好方法。

这似乎对我来说是正确的,但它不起作用:

var arr = [1, 2, 3, 4, 5];

var bar = [2, 4];

arr = arr.filter(function(v) {
  for (var i; i < bar.length; i++) {
    return bar.indexOf(v);
  }
});

console.log(arr); // []

// expected: [1, 3, 5]

这将如何工作,以及如何使用地图做同样的工作?



1> Tushar..:

Array#filter迭代数组,你不需要for在里面filter

for内部的问题filter是它将返回元素的索引,如果没有找到它可以是-1(真实的)和任何高达数组长度的东西.并且仅针对第一个元素即索引零,filter不会在JavaScript中将元素添加为零是假的.

此外,for循环将只检查的第一个元素bar,并return从那里.

var arr = [1, 2, 3, 4, 5];
var bar = [2, 4];

arr = arr.filter(function(v) {
  return bar.indexOf(v) === -1;
});

console.log(arr);
document.write('
' + JSON.stringify(arr, 0, 4) + '
');
推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有