首页 > 关于在chrome控制台执行一些语句遇到的问题?

关于在chrome控制台执行一些语句遇到的问题?

var b = ["red","color"];
1 in b; //true
"red" in b; //false

执行结果为true和false是为什么,求大神详细解答以下?以及如果我想确定数组b里又没有"red"(即在字符串数组中有没有某一确定的字符串)应该用什么方法?


此处的1是下标,而数组b中的下标最大为1,没有"red"下标。
in 多用于遍历关联数组或者对象属性。
你可以这样定义这个b数组:var b = []; b["red"] = red; 再执行 "red" in b; 返回 true


查了一下Array对象API,借用Array对象的方法实现:
["red","color"].some(function(val) {return val == "red";});


判断数组包含用b.indexOf('red')


in操作符用来判断某个属性属于某个对象,可以是对象的直接属性,也可以是通过prototype继承的属性。

b[0] = "red";
b[1] = "color";

所以,数组b中,0和1是索引,是数组b的直接属性,而“red”是数组b的索引0的值。
换句话说,in操作符是用来查看索引(index或key)的。

【热门文章】
【热门文章】