【js】indexOf()

/**
**位置方法indexOf()和lastIndexOf()
**这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引
**indexOf()方法从数组的开头(位置0)开始向后查找
**lastIndexOf()方法则从数组的末尾开始向前查找。
**这两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1
**/
var numbers = [1,2,3,4,5,4,3,2,1];
alert(numbers.indexOf(4)); //3
alert(numbers.lastIndexOf(4)); //5
alert(numbers.indexOf(4, 4)); //5
alert(numbers.lastIndexOf(4, 4)); //3
var person = { name: "Nicholas" };
var people = [{ name: "Nicholas" }];
var morePeople = [person];
alert(people.indexOf(person)); //-1
alert(morePeople.indexOf(person)); //0

这个例子中让人难以理解的可能是最后一个两行的输出。我就按照我的理解来解释一下:

person中存放的是对象的引用,该引用指向的是{name:"Nicholas"},而people中的{name:"Nicholas"}对象和person指向的是不同的物理地址,所以他们是不相同的。

posted @ 2013-11-16 19:06  NW_KNIFE  阅读(1432)  评论(0编辑  收藏  举报