Javascript 如何从数组上的forEach方法获得结果?
我有一个项目,显示用户提交的数据表“条目” 我已将项目设置为从entries数组中提取entry对象,并使用适当的数据构造表 表中的一个单元格是复选框。每个条目的复选框都有一个对应于条目ID号的值 我正在尝试向该表添加编辑、删除功能 我有一个函数,它检查所有复选框并从所选条目返回一个值数组。此数组已被选中 我正在尝试执行checkedEntries,对于该数组的每个索引,我希望它在主条目数组中搜索具有匹配ID的对象。然后我希望它将这些对象拉出,并将它们存储在新数组PullerDentries中 我相信我在正确的轨道上,但我不确定如何访问forEach方法的结果。我不希望使用JQuery 这是我的代码:JavascriptJavascript 如何从数组上的forEach方法获得结果?,javascript,arrays,Javascript,Arrays,我有一个项目,显示用户提交的数据表“条目” 我已将项目设置为从entries数组中提取entry对象,并使用适当的数据构造表 表中的一个单元格是复选框。每个条目的复选框都有一个对应于条目ID号的值 我正在尝试向该表添加编辑、删除功能 我有一个函数,它检查所有复选框并从所选条目返回一个值数组。此数组已被选中 我正在尝试执行checkedEntries,对于该数组的每个索引,我希望它在主条目数组中搜索具有匹配ID的对象。然后我希望它将这些对象拉出,并将它们存储在新数组PullerDentries中
function pullEntries(arr) {
arr.forEach(entry => entries.find(item => {
if (entry === item.id)
return true;
// push entry object into pulledEntries
pulledEntries.push(idk?); // what would I use to reference it here?
}))
}
正如@ChechoCZ所说,使用
.map
而不是.forEach
将以数组的形式返回结果。然而,我相信这是ES6语法
ES6方式:
功能牵引装置(arr){
返回arr.map(条目=>entries.find(条目=>{
if(条目===item.id)
返回true;
返回false;
}))
}
//返回类似[真、真、假、真、假、假、假]的结果
ES5方式:
功能牵引装置(arr){
设newArr=[];
arr.forEach(函数(条目){
返回条目。查找(函数(项){
if(条目===item.id)
newArr.push(真);
其他的
newArr.push(假);
});
});
返回newArr;
}
//返回类似[真、真、假、真、假、假、假]的结果
其他答案之一的简化:
function pullEntries(arr) {
return arr.map(entry => entries.find(item => entry === item.id));
}
您应该使用map而不是forEach。forEach不返回任何东西,但map返回。这就是他们之间的区别。这里有一个很有用的链接,指向MapES5不支持箭头功能(在forEach)。感谢您的建议!我完全没想到!(箭头函数不是必需的,在这个map用法中没有添加任何值[除了略短的语法]。)Wdym箭头函数不是必需的吗?映射不期望回调作为参数吗?当然,它期望回调。“普通”匿名函数可以正常工作。除了语法之外,箭头和“普通”匿名函数之间的唯一区别在于
this
的绑定(或缺少)。请编辑您的答案,解释它如何回答问题。