通過編碼學習,這里我有一個物件(資料)陣列,nodeId 是 number ,我想檢查陣列'target'是否與 nodeId 具有相同的值,然后'return',我應該使用 map(),find( ), filter(), 我怎么知道要使用哪個?英語不是我的母語,所以可能是錯誤的
資料:
const Test = '7'
const nodeId = parseInt(Test);
const data = [
{ target: 4, name: "usa" },
{ target: 7, name: "England" },
{ target: 3, name: "Japan" }
];
if (check if data and nodeId both have same value then) {
return;
}
uj5u.com熱心網友回復:
.some()可能是您想要使用的
const check = data.some((elem) => elem.target === nodeId)
console.log(check) // true if exist or false if it doesnt
if(check) {
// reached if it exist
}
檢查false它是否不存在或存在true。一旦找到匹配項,它將停止運行,而.filter()將.map()運行整個陣列。如果您還想獲取該元素,那么您應該使用它.find()。
uj5u.com熱心網友回復:
你的問題有點含糊,但我會盡量簡單地回答。
我應該使用 map()、find()、filter(),我應該如何知道使用哪個?
這取決于您假設的函式或代碼需要什么,例如,如果您想要與您的值匹配的專案,那么您會使用它,.find()因為它會根據條件回傳單個值。
同樣,如果您希望根據符合條件的專案回傳一個陣列,您將使用.filter(),如果您只想檢查您的值是否存在于陣列中,您可以使用.someor .every。
在您的代碼示例中,我假設您想要回傳與您的 nodeId 匹配的特定值,假設,這是如何作業的
function getDataBasedOnNodeId (dataObjects, matchValue) {
return dataObjects.find(item => item.target === Number(matchValue))
}
const data = [
{ target: 4, name: "usa" },
{ target: 7, name: "England" },
{ target: 3, name: "Japan" }
];
return getDataBasedOnNodeId(data, 7)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/480772.html
標籤:javascript 数组 反应 功能 筛选
上一篇:如何使這個函式動態化?函式
