Javascript数组过滤器使用外部函数结果

标签 javascript arrays object

var data = [];

data.push({
  Id: 1,
  name: "ONE"
});
data.push({
  Id: 2,
  name: "TWO"
});
data.push({
  Id: 3,
  name: "THREE"
});

data.filter(function(item) {

  if (item.Id == 1) {
    return item.name = display();
  }
});

function display() {
  return "Formatted Text";
}

我正在使用 array filter 函数在 中查找值对象数组。我无法在此过滤器中使用 display() 函数。

编译器一直告诉 display() 函数是 undefined

最佳答案

你可以拿Array#forEach ,因为 Array#filter返回包含过滤项目的数组。

看起来,你想分配一个有条件的新值,所以你不需要新数组。

function display() {
    return "Formatted Text";
}

var data = [{ Id: 1, name: "ONE" }, { Id: 2, name: "TWO" }, { Id: 3, name: "THREE" }];

data.forEach(function(item) {
    if (item.Id === 1) {
        item.name = display();
    }
});

console.log(data);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于Javascript数组过滤器使用外部函数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47461434/

相关文章:

php - 为什么会自动调用与类同名的方法?

javascript - 在几页上拆分索引结果

javascript - 使用 "new Function(...)"的安全考虑(在渲染期间,表达式来 self 的 Javascript 源)

javascript - addthis:addthis 实用程序框架的 JS 安全错误

javascript - Backbone.js 在解析期间检测 PUT、POST、GET、DELETE、PATCH

javascript - 将字符串表示法转换为递归对象指针

javascript - 在 JavaScript 中对多维数组进行排序时行为不一致

c - 尽管使用数组的字符,但指向整数的指针不兼容

arrays - 如何知道向量中是否存在连续增加的五个值

Python从类列表中选择项目