检查Array对象Javascript或Angular中是否存在值

Sti*_*llo 2 javascript angular

我想检查数组对象中是否存在值,例如:

我有这个数组:

[
    {id: 1, name: 'foo'},
    {id: 2, name: 'bar'},
    {id: 3, name: 'test'}
]
Run Code Online (Sandbox Code Playgroud)

我想检查一下是否id = 2存在.

谢谢

Kar*_*rim 12

var a = [
   {id: 1, name: 'foo'},
   {id: 2, name: 'bar'},
   {id: 3, name: 'test'}
];        

var isPresent = a.some(function(el){ return el.id === 2});
console.log(isPresent);
Run Code Online (Sandbox Code Playgroud)

Array.prototype.some doc


Cha*_*ang 7

您可以使用some()

如果您只想检查某个值是否存在,则该Array.some()方法(自 JavaScript 1.6 起)已足够公平,如前所述。

let a = [
   {id: 1, name: 'foo'},
   {id: 2, name: 'bar'},
   {id: 3, name: 'test'}
];        

let isPresent = a.some(function(el){ return el.id === 2});
console.log(isPresent);
Run Code Online (Sandbox Code Playgroud)

此外,find()是一个可能的选择。

如果要获取某个键具有特定值的整个第一个对象,最好使用Array.find()自 ES6 以来就存在的方法。

let hasPresentOn = a.find(
  function(el) {
  return el.id === 2
  }
);
console.log(hasPresentOn);
Run Code Online (Sandbox Code Playgroud)


sum*_*mar 6

您可以使用以下查找方法:

var x=[
    {id: 1, name: 'foo'},
    {id: 2, name: 'bar'},
    {id: 3, name: 'test'}
]
var target=x.find(temp=>temp.id==2)
if(target)
  console.log(target)
else
  console.log("doesn't exists")
Run Code Online (Sandbox Code Playgroud)