**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
13小时前关门了。
Improve this question
此代码:
let rId = requested.map((r) => r._id.toString());
console.log(rId);
let cId = confirmed.map((c) => c._id.toString());
console.log(cId);
rId.filter((r) => !cId.includes(r));
console.log(rId);
打印此内容:
[
'63bcc18d083dd2c66679e160',
'63bcc331083dd2c66679e278',
'63bdaef8f115ae565ac564c5'
]
[ '63bdaef8f115ae565ac564c5' ]
[
'63bcc18d083dd2c66679e160',
'63bcc331083dd2c66679e278',
'63bdaef8f115ae565ac564c5'
]
当函数返回false语句时,为什么不过滤数组中的最后一项?
我想印出来的是:
[
'63bcc18d083dd2c66679e160',
'63bcc331083dd2c66679e278',
'63bdaef8f115ae565ac564c5'
]
[ '63bdaef8f115ae565ac564c5' ]
[
'63bcc18d083dd2c66679e160',
'63bcc331083dd2c66679e278', // <-- item removed
]
2条答案
按热度按时间8cdiaqws1#
filter
不会改变原始数组。您应该将结果赋给一个变量。1cosmwyk2#
筛选器不会改变它所调用的数组。
您需要将筛选器的结果设置为一个值;