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";
}


我正在使用javascript array filter函数在对象的javascript array中查找值。我无法在此过滤器内使用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; }

10-05 20:36
查看更多