gpt4 book ai didi

javascript - JavaScript 中仅获取满足特定属性的对象

转载 作者:行者123 更新时间:2023-12-03 02:04:11 25 4
gpt4 key购买 nike

拥有这个对象数组:

myArray = [
{name: "aaa", type: "1"},
{name: "bbb", type: "2"},
{name: "aaa", type: "3"},
{name: "ddd", type: "1"},
{name: "xxx", type: "3"},
{name: "bbbb", type: "1"},
];

所有这些数据都显示在表格中。我正在实现一个下拉选择器,其中包含类型列表。

我希望能够在表格中仅显示符合条件的对象。

例如,如果从选择器中选择了1,则它应该在表格中显示以下数据:

{name: "aaa", type: "1"},
{name: "ddd", type: "1"},
{name: "bbbb", type: "1"},

目前,我已经编写了函数,但它不起作用。

updateTable(type) {
const newArray = [];
if (type === 1) {
for (let i =0; i< myArray.length; i++) {
if (myArray[i].type === 1) {
newArray.push({myArray[i]});
}
}
}
if (type === 2) {
for (let i =0; i< myArray.length; i++) {
if (myArray[i].type === 2) {
newArray.push({myArray[i]});
}
}
}
if (type === 3) {
for (let i =0; i< myArray.length; i++) {
if (myArray[i].type === 3) {
newArray.push({myArray[i]});
}
}
}
return newArray;

}

我尝试通过创建一个新数组来做到这一点,但这不是最好的方法。有没有不创建新数组的解决方案?

最佳答案

首先,由于 type === 1,您的代码无法正常工作。因为 (===) 检查值和类型。在数组类型中是一个字符串,但在函数参数中它是一个数字。因此,它永远不等于 true。

其次,将您的函数更新为以下内容

updateTable(type) {
return myArray.filter(function(item){
return item.type == type;
});
}

关于javascript - JavaScript 中仅获取满足特定属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49878996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com