gpt4 book ai didi

javascript - 为什么在 Javascript 中尝试使用 Array.includes 作为 Array.filter 的函数时出现错误?

转载 作者:行者123 更新时间:2023-12-01 02:11:02 27 4
gpt4 key购买 nike

<分区>

最近在使用 javascript 开发项目时,我尝试了类似于此代码段的操作。我惊讶地发现它不起作用,而是抛出错误。

const test = [1, 2, 3, 4];

const something = [1, 2, 3, 4, ,5, 6, 7, 8].filter(test.includes);

console.log(something);

TypeError: Cannot convert undefined or null to object
at includes (<anonymous>)
at Array.filter (<anonymous>)
at evalmachine.<anonymous>:3:45
at Script.runInContext (vm.js:74:29)
at Object.runInContext (vm.js:182:6)
at evaluate (/run_dir/repl.js:133:14)
at ReadStream.<anonymous> (/run_dir/repl.js:116:5)
at ReadStream.emit (events.js:180:13)
at addChunk (_stream_readable.js:274:12)
at readableAddChunk (_stream_readable.js:261:11)

这是 javascript 错误还是我误解了这里的内容。以下片段工作正常:

const test = [1, 2, 3, 4];

const something = [1, 2, 3, 4, ,5, 6, 7, 8].filter(item => test.includes(item));

console.log(something);

和:

const test = [1, 2, 3, 4];

const someFunc = theThing => test.includes(theThing);
const something = [1, 2, 3, 4, ,5, 6, 7, 8].filter(someFunc);

console.log(something);

当我足够容易地看到模式时,致力于更函数式的编程风格和点自由,这似乎是一种不一致。

编辑:这不是重复的。我不需要澄清 This,只需要说明它是如何在 includes 函数的上下文中具体处理的。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com