gpt4 book ai didi

javascript - 试图结合一个 .forEach 和一个 .map 函数,但我得到 return undefined

转载 作者:行者123 更新时间:2023-12-04 12:31:14 24 4
gpt4 key购买 nike

我有以下 .map创建一个新的元素数组并将它们的 selected 属性更改为 false 的函数:

const newAlteredData = alteredData.map((element) => {
return { ...element, selected: false };
});
但是,现在我只想更改另一个名为 changeRows 的数组中也存在的元素。
我尝试了以下方法:
const newAlteredData = alteredData.map((element) => {
changeRows.forEach((changeRow) => {
if (changeRow.deviceId === element.deviceId) {
return { ...element, selected: false };
}
return element;
});
});
然而,这只是返回一个未定义的数组。我在这里没有正确使用 .map 和/或 .forEach 吗?

最佳答案

Am I not using .map and/or .forEach correctly here?

forEach()不是在这里使用的正确方法。它用于迭代数组 - 不查找其中的元素。 forEach()方法不返回任何内容。任何从其回调函数返回的值都将被忽略。
Javascript 提供了多种方法来查找数组中的元素。
您可以使用 findchangeRows 中查找元素的方法大批。
const newAlteredData = alteredData.map((element) => {
const exists = changeRows.find(el => el.deviceId === element.deviceId);

if (exists) {
return { ...element, selected: false };
}
});
可以使用的其他方法:
  • findIndex
  • includes
  • some
  • 关于javascript - 试图结合一个 .forEach 和一个 .map 函数,但我得到 return undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68906425/

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