使用以下陣列陣列我需要搜索一個元素,如果它找到該元素,它應該回傳它所屬的整個陣列
例子
const data= [[
"car",
"plane",
"boat"
],
[
"paris",
"barcelona",
"los angeles"
],
[
"milk",
"eggs",
"brea",
]
]
如果匹配車必須回傳
[plane, boat]
如果匹配巴黎必須回傳
[barcelona, los angeles]
uj5u.com熱心網友回復:
Find/Filter 將回傳陣列
const data= [
[ "car", "plane", "boat" ],
[ "paris", "barcelona", "los angeles"],
[ "milk", "eggs", "bread" ]
]
const findArr = (nestedArr, item) => nestedArr
.find(arr => arr.includes(item))
const findAndExcludeItem = (nestedArr, item) => {
const arrContaining = nestedArr.find(arr => arr.includes(item)) || [];
return arrContaining.filter(filteredItem => filteredItem != item);
};
const excludeArr = (nestedArr, item) => nestedArr
.filter(arr => !arr.includes(item))
console.log(findArr(data,"paris"))
console.log(findAndExcludeItem(data,"paris"))
console.log(excludeArr(data,"paris"))
uj5u.com熱心網友回復:
find()對第一個匹配陣列然后filter()輸出匹配值可能最簡單:
const data = [[
"car",
"plane",
"boat"
], [
"paris",
"barcelona",
"los angeles"
], [
"milk",
"eggs",
"brea",
]];
const fn = (match) => (
data.find(array => array.includes(match)) || []
).filter(v => v !== match);
console.log(fn('paris'));
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/463703.html
標籤:javascript 数组 搜索
