js判断元素是否存在 indexOf ()

indexOf在js中有着重要的作用,可以判断一个元素是否在数组中存在,或者判断一个字符是否在字符串中存在,如果存在返回该元素或字符第一次出现的位置的索引,不存在返回-1。

例如:

var arr = [1, 2, 3];
console.log(arr.indexOf(2));    //打印结果为1

又或者

var str = "helloworld";
console.log(str.indexOf("w"));  //打印结果为5

但是,indexOf真的就是好东西吗?看下面的代码。

var arr = [{name:"racyily",age:22},{name:"susan",age:18}];
var obj = {name:"susan",age:18};
console.log(arr.indexOf(obj));  //打印结果为-1

我们发现obj和arr数组中第1个元素时一样的。但是却返回-1。

这下明白了,就是因为如果数组中存放的是对象或者数组的话,必须是该对象的引用,才可以使用indexOf得到正确的索引值。

那么,如果想判断一个对象(数组)在一个数组中是否存在(值与元素相等),如何实现呢?

只能自己写一个方法去实现了,具体方法略,本人还不清楚。

indexOf在js中有着重要的作用,可以判断一个元素是否在数组中存在,或者判断一个字符是否在字符串中存在,如果存在返回该元素或字符第一次出现的位置的索引,不存在返回-1。 例如: var arr = [1, 2, 3]; console.log(arr.indexOf(2)); //打印结果为1 又或者 var str = "helloworld"; console.log(str.indexOf("w")); //打印结果为5 但是,indexOf真的就是好东西吗?看下面的代码。 var arr = [{name:"racyily",age:22},{name:"susan",age:18}]; var obj = {name:"susan",age:18}; console.log(arr.indexOf(obj)); //打印结果为-1 我们发现obj和arr数组中第1个元素时一样的。但是却返回-1。 这下明白了,就是因为如果数组中存放的是对象或者数组的话,必须是该对象的引用,才可以使用indexOf得到正确的索引值。 那么,如果想判断一个对象(数组)在一个数组中是否存在(值与元素相等),如何实现呢? 只能自己写一个方法去实现了,具体方法略,本人还不清楚。
indexOf在js中有着重要的作用,可以判断一个元素是否在数组中存在,或者判断一个字符是否在字符串中存在,如果存在返回该元素或字符第一次出现的位置的索引,不存在返回-1。 例如: var arr = [1, 2, 3]; console.log(arr.indexOf(2)); //打印结果为1 又或者 var str = "helloworld"; console.log(str.indexOf("w")); //打印结果为5 但是,indexOf真的就是好东西吗?看下面的代码。 var arr = [{name:"racyily",age:22},{name:"susan",age:18}]; var obj = {name:"susan",age:18}; console.log(arr.indexOf(obj)); //打印结果为-1 我们发现obj和arr数组中第1个元素时一样的。但是却返回-1。 这下明白了,就是因为如果数组中存放的是对象或者数组的话,必须是该对象的引用,才可以使用indexOf得到正确的索引值。 那么,如果想判断一个对象(数组)在一个数组中是否存在(值与元素相等),如何实现呢? 只能自己写一个方法去实现了,具体方法略,本人还不清楚。
indexOf在js中有着重要的作用,可以判断一个元素是否在数组中存在,或者判断一个字符是否在字符串中存在,如果存在返回该元素或字符第一次出现的位置的索引,不存在返回-1。 例如: var arr = [1, 2, 3]; console.log(arr.indexOf(2)); //打印结果为1 又或者 var str = "helloworld"; console.log(str.indexOf("w")); //打印结果为5 但是,indexOf真的就是好东西吗?看下面的代码。 var arr = [{name:"racyily",age:22},{name:"susan",age:18}]; var obj = {name:"susan",age:18}; console.log(arr.indexOf(obj)); //打印结果为-1 我们发现obj和arr数组中第1个元素时一样的。但是却返回-1。 这下明白了,就是因为如果数组中存放的是对象或者数组的话,必须是该对象的引用,才可以使用indexOf得到正确的索引值。 那么,如果想判断一个对象(数组)在一个数组中是否存在(值与元素相等),如何实现呢? 只能自己写一个方法去实现了,具体方法略,本人还不清楚。
经验分享 程序员 微信小程序 职场和发展