簡體   English   中英

檢查數組中的所有對象是否包含給定的鍵值(javascript)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM