gpt4 book ai didi

javascript - 从对象数组中返回匹配的对象

转载 作者:行者123 更新时间:2023-12-05 05:16:38 24 4
gpt4 key购买 nike

我想根据 searchString 从给定数组中搜索匹配的值对象。例如,搜索字符串将是“对象 0”。

var objArray = [
{ id: 0, name: 'Object 0', otherProp: '321', secondVal:'stack' },
{ id: 1, name: 'O1', otherProp: 'Object 0', secondVal: 'Overflow' },
{ id: 2, name: 'Another Object', otherProp: '850', secondVal: 'Context' },
{ id: 3, name: 'Almost There', otherProp: '046', secondVal: 'Object 1' },
{ id: 4, name: 'Last Obj', otherProp: '78', secondVal: 'test' }
];

现在我想在数组中搜索 Object 作为值。意味着它应该返回 0、1 和 3 个对象

帮助将不胜感激

最佳答案

您可以遍历数组中的每个对象,获取每个对象的键以防止您自己使用对象中的动态属性,然后检查该键的值是否具有 Object 作为子字符串或不。注意下面代码中的obj[key].toString()。使用 toString() 是因为您的 id 具有整数值,而 indexOf() 适用于字符串值。因此,使用它可以防止错误。

var objArray = [
{ id: 0, name: 'Object 0', otherProp: '321', secondVal:'stack' },
{ id: 1, name: 'O1', otherProp: 'Object 0', secondVal: 'Overflow' },
{ id: 2, name: 'Another Object', otherProp: '850', secondVal: 'Context' },
{ id: 3, name: 'Almost There', otherProp: '046', secondVal: 'Object 1' },
{ id: 4, name: 'Last Obj', otherProp: '78', secondVal: 'test' }
];

var res = [];
objArray.filter((obj) => {
Object.keys(obj).forEach((key)=>{
if(obj[key].toString().indexOf('Object') !== -1){
res.push(obj);
}
});
});

console.log(res);

关于javascript - 从对象数组中返回匹配的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50226742/

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