javascript - JS - 数组 forEach 方法说明

标签 javascript arrays foreach

我现在正在学习 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/

相关文章:

c - EXC_BAD_ACCESS 使用数组时出错

php - 从数组中删除多个值

vb.net - 在 for each 循环中删除对象

javascript - 如何使用JavaScript获取dynamic cm中的帐户名?

javascript -/[\[]/在 JavaScript 中做什么?

javascript - 图表 js 仅在积极数据时显示

c++ - 创建一个n维数的多维数组

javascript - "href:tel"链接无法在 IOS 中打开警报 View

php - 如何在 PHP 中随机填充单个锦标赛淘汰而不重复?

javascript - 用 forEach 函数计算总和?