我正在嘗試檢查嵌套陣列中是否存在值。這就是我正在使用的資料的樣子:
[
{
name: 'bob',
occupation: ['Teacher', 'Store Owner'],
},
{
name: 'grace',
occupation: ['Doctor'],
},
]
我正在嘗試查看職業值是否已經存在。這是我當前的代碼:
const occupationExists = (value) => users.some((user) => user.occupation === value);
我知道這不起作用,因為它沒有訪問陣列中的值,但我該怎么做呢?任何幫助,將不勝感激。
uj5u.com熱心網友回復:
occupation您還需要檢查Array#includes.
const occupationExists = value => users.some(user =>
user.occupation.includes(value)
);
uj5u.com熱心網友回復:
這應該可以解決問題,它根據職業是否存在回傳真/假。
let users = [
{
name: 'bob',
occupation: ['Teacher', 'Store Owner'],
},
{
name: 'grace',
occupation: ['Doctor'],
},
]
const occupationExists = (value) => {
let res = users.filter((user) =>
user.occupation.indexOf(value) != -1
)
return res.length > 0
}
let value = 'Doctor'
console.log(occupationExists(value))
uj5u.com熱心網友回復:
這是一個問題user.occupation === value:user.occupation是一個字串陣列,value而是一個字串,因此您無法比較兩者。您可以Array#includes()按照@NinaScholz 的說明使用,也可以使用另一個(內部)Array#some(),在其中您可以將字串與字串進行比較:job === value。
const users = [{name: 'bob',occupation: ['Teacher', 'Store Owner']}, {name: 'grace',occupation: ['Doctor']}];
//const occupationExists = value => users.some(user => user.occupation.includes(value)); //best answer
//Alternative answer
const occupationExists = value => users.some(
user => user.occupation.some(job => job === value)
);
console.log( occupationExists('Teacher') );
console.log( occupationExists('Developer') );
uj5u.com熱心網友回復:
let aoo = [
{
name: 'bob',
occupation: ['Teacher', 'Store Owner'],
},
{
name: 'grace',
occupation: ['Doctor', 'Store Owner'],
},
]
let fullOccupation = []
aoo.map(obj => {
obj.occupation.map(occ => {
const check = fullOccupation.includes(occ)
console.log(occ)
if(!check)
{
fullOccupation.push(occ)
}else{
alert(occ)
}
})
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/444935.html
標籤:javascript 数组 反应 数据结构
上一篇:如何將行添加到numpy陣列
