![](/img/trans.png)
[英]JavaScript shortcut for checking a particular key-value inside array of objects
[英]Checking an array if all objects inside contains a given key value(javascript)
如何檢查對象數組中的所有對象是否包含鍵值對。
例如考慮這個數組 = arr=[{name:'one',check:'1'},{name;'two',check:'0.1'},{name:'three',check:'0.01'}]
如果至少檢查值存在於數組的一個 object 中,則下面的 function 返回 true,否則返回 false。 `
function checkExists(check,arr) {
return arr.some(function(el) {
return el.check === check;
});
}
`
但是只有當數組中的所有對象都包含該檢查值時,我才需要檢查並返回 true,否則返回 false。
這個怎么做?
只需使用.every
而不是.some
? 箭頭函數也會使它更簡潔:
const checkExists = (check, arr) => arr.every(el => el.check === check);
CertainPerformance 答案就是一個。 但是如果你絕對想像你那樣迭代,你只需要為包含所需鍵的 object 的數字創建一個增量,然后如果增量值等於數組中的值的數量則返回。
let arr=[{name:'one',check:'1',hello:'boy'},
{name:'two',check:'0.1',bye:6},{name:'three',check:'0.01',bye:18}];
function checkExists(key,arr) {
let count = 0;
arr.forEach((el) => {
if(el.hasOwnProperty(key)){
count += 1;
}
});
return count === arr.length;
}
console.log(checkExists("name", arr)); // true
console.log(checkExists("check", arr)); // true
console.log(checkExists("hello", arr)); // false
console.log(checkExists("bye", arr)); // false
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.