检查对象javascript上是否已存在值

时间:2014-04-12 12:56:33

标签: javascript jquery arrays object

我想检查一个id是否已经在一个对象中。

我将4个键/值推送到对象

moviesFavorites.push({
  id: movieId,
  title: movieTitle,
  year: movieYear,
  image: movieImage
});

它会返回类似的内容:

Array[3]
  0: Object
    id: "1170358"
    image: "http://zapp.trakt.us/images/posters_movies/180744-300.jpg?3"
    title: "The Hobbit The Desolation of Smaug"
    year: "2013"

  1: Object
    id: "1335975"
    image: "http://zapp.trakt.us/images/posters_movies/179050-300.jpg?2"
    title: "47 Ronin"
    year: "2013"
length: 2

我创建了一个for循环来检查id是否已经在对象上,但它不起作用。它一直返回false。怎么了?

for (var i = 0 ; i < moviesFavorites.length; i++) {
  var globalObj = moviesFavorites[i];

  console.log(globalObj.id in globalObj);
}

1 个答案:

答案 0 :(得分:4)

你想要

console.log("id" in globalObj);

使用您拥有的代码,它将查找与globalObj.id

的值匹配的密钥

所以你的代码基本上评估为:

console.log("1170358" in globalObj);
console.log("1335975" in globalObj);

或者如果id属性在globalObj上不存在,并且没有使用严格模式,它将查找名为undefined的键,因为id未定义

console.log("undefined" in globalObj);