我如何迭代這個物件,以及他有陣列的屬性,以找出陣列內部的一個詞,例如 beats
[
{
mouse: 'lenovo',
teclado: 'dell',
monitor: 'hp',
headset: ['audioTechnica', 'klipXtreme', 'beats']
},
{
mouse: 'razor',
teclado: 'think pad',
monitor: 'lg',
headset: ['random', 'hyperx', 'jbl']
},
{
mouse: 'technet',
teclado: 'red dragon',
monitor: 'benq',
headset: ['sony', 'senheiser', 'toshiba']
}
]
uj5u.com熱心網友回復:
你想在這個陣列中找到物件,哪些屬性有一些字串,對嗎?
如果這就是您要查找的內容,這里有一些快速提示:您應該遍歷陣列(也許,使用“查找”),然后為每個物件遍歷它的 props,然后檢查它是否有您要查找的字串。
實作示例:
let searchPhrase = 'razor';
array.find(item => {
Object.keys(item).find(key => typeof item[key] === 'string' ?
item[key] === searchPhrase :
item[key].includes(searchPhrase)
)
)
請注意,此代碼依賴于物件的屬性僅為字串或陣列的事實。如果您不確定這一事實,則需要進行一些額外的檢查。
uj5u.com熱心網友回復:
您可以使用遞回遍歷所有物件級別:
const trav = (obj) => {
if (obj instanceof Array) {
obj.forEach(item => trav(item))
} else if (typeof obj === "object") {
Object.keys(obj).forEach(key => {
trav(obj[key])
})
} else if(typeof obj === "string"){
if(obj === "beats") {
console.log('Find it')
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/371418.html
標籤:javascript 打字稿
