javascript在数组中查找

Mar*_*ark 4 javascript jquery

我有这样一个数组:

  var movies = [
  { Name: "The Red Violin", ReleaseYear: "1998", Director: "François Girard" },
  { Name: "Eyes Wide Shut", ReleaseYear: "1999", Director: "Stanley Kubrick" },
  { Name: "The Inheritance", ReleaseYear: "1976", Director: "Mauro Bolognini" }
  ];
Run Code Online (Sandbox Code Playgroud)

我想找到1999年发行的电影的位置.

应该回来1.

什么是最简单的方法?

谢谢.

Anu*_*rag 6

您将不得不遍历每个值并检查.

for(var i = 0; i < movies.length; i++) {
    if (movies[i].ReleaseYear === "1999") {
        // i is the index
    }
}
Run Code Online (Sandbox Code Playgroud)

由于JavaScript最近添加了对大多数常见集合操作的支持,这显然是对集合的过滤操作,您也可以这样做:

var moviesReleasedIn1999 = movies.filter(function(movie) {
    return movie.ReleaseYear == "1999";
});
Run Code Online (Sandbox Code Playgroud)

假设您对索引不感兴趣,但对实际数据对象不感兴趣.绝大多数人都不是:)

.filter并非所有浏览器都支持,但您可以自己将其添加到代码库中:https: //developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter#Compatibility