簡體   English   中英

無法找到對象是否存在於給定對象作為輸入的對象數組中

[英]Unable to find whether an object exists in an Array Of Objects given object as an input

我是一名初級開發人員,試圖解決一個場景,如果我們嘗試將現有對象添加到數組中,我應該會收到錯誤消息。

輸入 :

 {
  id: "0", 
  name: "sdsd"
}

現有數組:

[{
  id: "0", 
  name: "sdsd"
 },

{
 id: "1", 
 name: "sds"
}, 
{
 id: "2",
 name: "sdf"
}]

我期待該功能類似於

findDuplicate(Array, Object) => 如果存在則返回 true,否則返回 false。

使用some方法,因為它會返回true / false 如果某些項目匹配true則返回,否則如果沒有匹配項,它將返回false (您的回調必須返回一個真/假值)。

 let items = [ { id: "0", name: "sdsd" }, { id: "1", name: "sds" }, { id: "2", name: "sdf" } ] // Test "name" console.log(items.some(i => i.name == 'sdsd')) console.log(items.some(i => i.name == 'dog')) // Test "id" console.log(items.some(i => i.id == '0')) console.log(items.some(i => i.id == '100')) // Test both "name" and "id" console.log(items.some(i => i.name == 'sdsd' && i.id == '0')) console.log(items.some(i => i.name == 'sdsd' && i.id == '100'))

您可以像下面這樣使用數組過濾器和數組:

 var exist = [{ id: "0", name: "sdsd" }, { id: "1", name: "sds" }, { id: "2", name: "sdf" }]; function findDuplicate(array, object){ var result = array.filter(current=>{ return Object.keys(current).every(key =>{ if (object[key] === current[key]){ return key; } }); }); //console.log(result); if (result.length == 0 ) return false; return true; } console.log (findDuplicate(exist,{id:"0",name:"sdsdf"})); console.log (findDuplicate(exist,{id:"0",name:"sdsd"}));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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