我现在正在学习 JavaScript,我遇到了数组函数的一些问题,特别是 forEach 方法。
'use strict';
var business = [
{
name: 'Red Apple',
distance: 2,
price: 3,
rating: 1
},
{
name: 'Zoe',
distance: 1,
price: 1,
rating: 5
},
{
name: 'Everything Pizza',
distance: 6,
price: 1,
rating: 2
},
{
name: 'Salad Place',
distance: 2,
price: 2,
rating: 4
},
{
name: 'Yumm',
distance: 5,
price: 2,
rating: 3
},
{
name: 'California Foods',
distance: 8,
price: 5,
rating: 4
}
];
business.updateLocation = function (miles) {
function updateDistance(value){
value.distance += miles;
}
return this.forEach(updateDistance);
};
代码的顶部是我正在创建的简单业务审查前端的对象数组。我在我的其他函数中调用了其他数组方法并很好地执行了它们的表,这些是过滤和排序方法。我的目标是简单地将变量 miles 添加到对象的 distance 属性,然后使用以下代码以表格形式打印它们:
// Test the updateLocation method.
console.log('Return value from updateLocation')
console.table(business.updateLocation(3));
每当我调用 console.table(business.updateLocation(3)) 时,什么都不打印。我确定它与我的功能有关,因为我仍然对 forEach 的三个参数感到困惑。有人可以详细说明在这种情况下使用的值、索引和数组吗?我只需要值(value)……对吗?提前致谢!
最佳答案
Array.forEach
总是返回未定义。
forEach() executes the callback function once for each array element; unlike every() and some(), it always returns the value undefined.
'use strict';
var business = [
{
name: 'Red Apple',
distance: 2,
price: 3,
rating: 1
},
{
name: 'Zoe',
distance: 1,
price: 1,
rating: 5
},
{
name: 'Everything Pizza',
distance: 6,
price: 1,
rating: 2
},
{
name: 'Salad Place',
distance: 2,
price: 2,
rating: 4
},
{
name: 'Yumm',
distance: 5,
price: 2,
rating: 3
},
{
name: 'California Foods',
distance: 8,
price: 5,
rating: 4
}
];
business.updateLocation = function (miles) {
function updateDistance(value){
value.distance += miles;
}
this.forEach(updateDistance);
return this;
};
console.log(business.updateLocation(3));
关于javascript - JS - 数组 forEach 方法说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30043286/