我有包含 2 個物件的陣列“arr”,每個物件都有包含 2 或 3 個物件的陣列“innerArr”,每個物件有一個值“val”:
let arr = [
{
innerArr: [
{ val: "Apple" },
{ val: "Grape" }
]
},
{
innerArr: [
{ val: "Peach" },
{ val: "Mango" },
{ val: "Kiwi" }
]
}
];
現在,我想檢查是否至少存在一個特定值,例如 "Kiwi",查看陣列"arr"中的所有內部陣列 "innerArr "。
我創建了代碼來檢查是否至少存在一個特定值 "Kiwi"并回傳"true"。
let result = false;
for(let i = 0; i < arr.length; i ) {
for(let j = 0; j < arr[i].innerArr.length; j ) {
if(arr[i].innerArr[j].val == "Kiwi") { // Check if "Kiwi" exists
result = true;
}
}
}
console.log(result); // true
這是完整的可運行代碼:
let arr = [
{
innerArr: [
{ val: "Apple" },
{ val: "Grape" }
]
},
{
innerArr: [
{ val: "Peach" },
{ val: "Mango" },
{ val: "Kiwi" }
]
}
];
let result = false;
for(let i = 0; i < arr.length; i ) {
for(let j = 0; j < arr[i].innerArr.length; j ) {
if(arr[i].innerArr[j].val == "Kiwi") { // Check if "Kiwi" exists
result = true;
}
}
}
console.log(result); // true
此外,這是回傳"false"的"Strawberry"的情況:
let arr = [
{
innerArr: [
{ val: "Apple" },
{ val: "Grape" }
]
},
{
innerArr: [
{ val: "Peach" },
{ val: "Mango" },
{ val: "Kiwi" }
]
}
];
let result = false;
for(let i = 0; i < arr.length; i ) {
for(let j = 0; j < arr[i].innerArr.length; j ) {
if(arr[i].innerArr[j].val == "Strawberry") { // Check if "Strawberry" exists
result = true;
}
}
}
console.log(result); // false
但是,我想用“Kiwi”使這段代碼更簡單。有什么方法可以使這段代碼更簡單嗎?
let result = false;
for(let i = 0; i < arr.length; i ) {
for(let j = 0; j < arr[i].innerArr.length; j ) {
if(arr[i].innerArr[j].val == "Kiwi") { // Check if "Kiwi" exists
result = true;
}
}
}
console.log(result); // true
uj5u.com熱心網友回復:
您可以使用 .some
let arr = [
{
innerArr: [
{ val: "Apple" },
{ val: "Grape" }
]
},
{
innerArr: [
{ val: "Peach" },
{ val: "Mango" },
{ val: "Kiwi" }
]
}
];
let fruit = "Kiwi"
let result = arr.some(({ innerArr }) => innerArr.some(({val}) => val === fruit))
console.log(result)
它甚至比你的回圈更快,因為.some在找到搜索結果后停止回圈
uj5u.com熱心網友回復:
let arr = [
{
innerArr: [
{ val: "Apple" },
{ val: "Grape" }
]
},
{
innerArr: [
{ val: "Peach" },
{ val: "Mango" },
{ val: "Kiwi" }
]
}
];
let fruits = arr.flatMap(e => e.innerArr).map(e => e.val)
console.log(fruits)
console.log(fruits.includes('Kiwi'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/370593.html
標籤:javascript 数组 json 目的 前端
