Javascript 使用嵌套数据调用数组foreach循环中的函数

Javascript 使用嵌套数据调用数组foreach循环中的函数,javascript,arrays,function,foreach,Javascript,Arrays,Function,Foreach,以下显然不起作用,但这正是我努力实现的目标: items.forEach(addData(item.data)); 我知道我能做到: items.forEach(function(item){ addData(item.data) }); 但我想知道是否有一种速记/更酷的方法可以做到这一点 编辑: 我还调用了相同的adddata函数,其中包含 不是这样嵌套的: items.forEach(addItemId) 这就是为什么我试图找到一种方法来为嵌套对象使用相同的函数(以类似的方式)

以下显然不起作用,但这正是我努力实现的目标:

items.forEach(addData(item.data));
我知道我能做到:

items.forEach(function(item){
    addData(item.data)
});
但我想知道是否有一种速记/更酷的方法可以做到这一点

编辑:

我还调用了相同的adddata函数,其中包含 不是这样嵌套的:

items.forEach(addItemId)

这就是为什么我试图找到一种方法来为嵌套对象使用相同的函数(以类似的方式)。

如果可以将函数更新为使用
item
而不是
item。data
可以执行以下操作:

items.forEach(addData);

这将为每个
项调用addData,而不是
项。数据
虽然使用ES6功能:Lambdas

items.forEach(item => addData(item.data));

我试图找到一种使用
.bind
的方法,但老实说,这是一种非常干净的方法。一行代码,是
function(){}
的简写,我不建议在生产代码中这样做,但您可以使用一个小组合器来完成以下操作:

const map_into = k => fn => o => fn(o[k]);

items.forEach(map_into('data')(addData));

兰姆达<代码>items.forEach(item=>addData(item.data))我认为常规Javascript中没有任何速记。像下划线.js和lodash这样的库可能有办法做到这一点。iirc你不能将函数参数绑定到函数@Barmar吗?@SterlingArcher它如何自动获得数组每个元素的
.data
属性?你可以调整
addData
函数来查找
.data
:p尽管这是真的,Barmar有一个很好的观点,那就是这并不能概括解决方案。OP可能不想这样做,正在寻找一种绑定item.data参数而不是itemHow的方法一点
items.forEach(({data})=>addData(data))我看到的是一种奇特的解构吗?没错。如果你不能让自己觉得自己很聪明,那么编程又有什么意义呢?哈哈