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 中查找值对象数组。我无法在此过滤器中使用 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/