includes 和 indexOf 对我的数组不满意

问题描述 投票:0回答:1

如何在数组中查找特定值?

newdata

(2) [{…}, {…}]
0: {city: 'mytown', photo: 'data:image/png;base64,iVBORw0AAJoA…FLhAXTkSuQmCC', state: 'YO', suite: 'Penthouse suite', zip_code: '54321', …}

1: {city: 'yourtown', state: 'MO', zip_code: '12345', last_name: 'Dtest2', cell_phone: '4082789949', …}length: 2[[Prototype]]: Array(0)
newdata.indexOf("12345")
-1
newdata.includes("12345")
false

困惑:寻找保存值的索引 - 我需要单独索引所有键吗?

javascript arrays
1个回答
0
投票

您要查找的值是数组中对象之一的属性,而不是数组本身的值。这就是它不起作用的原因。

要执行您所需的操作,我建议使用

filter()
代替,并检查数组中对象的 any 值是否包含您要查找的值。这是一个有效的例子:

const newdata = [{ city: 'mytown', state: 'YO', suite: 'Penthouse suite', zip_code: '54321'}, { city: 'yourtown', state: 'MO', zip_code: '12345', last_name: 'Dtest2', cell_phone: '4082789949' }]

const searchTerm = '12345';
const filteredData = newdata.filter(obj => Object.values(obj).includes(searchTerm));

console.log(filteredData);

© www.soinside.com 2019 - 2024. All rights reserved.