使用外部函数结果的Javascript数组过滤器
我使用数组过滤器函数来查找对象数组中的值。我无法在此过滤器内使用显示功能 编译器一直告诉显示函数未定义。您可以使用,因为返回一个包含筛选项的数组 看起来,您希望分配一个带有条件的新值,因此不需要新数组 功能显示{ 返回格式化文本; } var data=[{Id:1,name:ONE},{Id:2,name:TWO},{Id:3,name:THREE}]; data.forEachfunctionitem{ 如果item.Id==1{ item.name=显示; } }; 控制台日志数据; .as控制台包装{max height:100%!important;top:0;}您可以使用,因为返回一个包含筛选项的数组 看起来,您希望分配一个带有条件的新值,因此不需要新数组 功能显示{ 返回格式化文本; } var data=[{Id:1,name:ONE},{Id:2,name:TWO},{Id:3,name:THREE}]; data.forEachfunctionitem{ 如果item.Id==1{ item.name=显示; } }; 控制台日志数据;使用外部函数结果的Javascript数组过滤器,javascript,arrays,object,Javascript,Arrays,Object,我使用数组过滤器函数来查找对象数组中的值。我无法在此过滤器内使用显示功能 编译器一直告诉显示函数未定义。您可以使用,因为返回一个包含筛选项的数组 看起来,您希望分配一个带有条件的新值,因此不需要新数组 功能显示{ 返回格式化文本; } var data=[{Id:1,name:ONE},{Id:2,name:TWO},{Id:3,name:THREE}]; data.forEachfunctionitem{ 如果item.Id==1{ item.name=显示; } }; 控制台日志数据; .
.as console wrapper{max height:100%!important;top:0;}我认为您最好使用findIndex,而不是像下面这样的过滤器:
我认为您最好使用findIndex而不是过滤器,如: 试试这个:
const arrIndex = data.findIndex(function(item) {
return item.Id==1
});
if(arrIndex !== -1) { data[arrIndex] = display(); }
试试这个:
const arrIndex = data.findIndex(function(item) {
return item.Id==1
});
if(arrIndex !== -1) { data[arrIndex] = display(); }
筛选器返回一个包含已筛选项的数组。您需要一个赋值,只需返回检查结果。@NinaScholz您可以演示一下吗?您在显示的代码中还有其他问题,但没有理由显示为未定义。Filter返回一个包含筛选项的数组。您需要一个任务,只需返回检查结果。@NinaScholz您可以演示一下吗?您在显示的代码中有其他问题,但没有理由显示是非限定的。他可以按ID创建一个项目,然后更新返回的项目(如果有)。或者,他可以根据ID创建一个项目,然后更新返回的项目(如果有)。为您的答案添加一个解释。我使用的不是forEach而是map函数。过滤器将文件的数据,所以这里地图是首选添加一个解释到您的答案。而不是forEach只是我使用的地图功能。过滤器将对数据进行文件处理,因此此处的映射更可取
var data = [{
Id: 1,
name: "ONE"
}, {
Id: 2,
name: "TWO"
}, {
Id: 3,
name: "THREE"
}];
data.map(function(item) {
if (item.Id == 1) {
item.name = display();
}
return item;
});
function display() {
return "Formatted Text";
}