var patt = new RegExp(11);
var data = [
[
{a:1,b:1},
{a:2,b:2},
{a:3,b:3}
],
[
{a:11,b:11},
{a:22,b:22},
{a:33,b:33}
]
]
data.forEach((item,index) => {
item.forEach((item2,index2) => {
if(!patt.test(item2.a)) {
console.log(item2.a); //打印出的结果是1,2,3,22,33(除了11以外的所有项)
item.splice(index2,1); //问题出在这一句
}
})
});
console.log(data); //我希望这个data能拿到的是{a:11,b:11}这一条数据
如上面的代码所示,我现在希望data打印出的结果是patt筛选的那个结果所在的那条数据{a:11,b:11}
该怎么修改这一段代码,让它能正确的打印出我想要的结果?
item2.splice(index2,1); //item2item
是外层的,你要删除的是内层的。所以是item2
**仔细一看,我应该写错了。我再改改
那么forEach看上去不那么适合
filter()也不适合,他只有两个操作,要或者不要,所以最外层的循环他改变不了
这个我觉得就还好了,因为他是一个返回值的合集