var a = [1,2,3] if (1 in a) { console.log(‘something’) } 这样写不对,可以不写循环么,es6的语法也行。 python过来的新手,见谅,感谢!
https://cnodejs.org/topic/56a050ac8392272262331d62 论坛里看到了这个帖子,很赞
在ECMAScript 2016 (ES7)甚至可能将其应用于数组,像indexOf一样: !!~[1, 2, 3].indexOf(1); // true [1, 2, 3].includes(1); // true
是不是说明只能写循环了
Array对象有一个indexOf方法,如果存在返回元素的位置,如果不存在返回-1;可以利用一下…
感谢2楼!
哦 lz在这个需求里千万不能用in操作符 in 是说存不存在这个key而不是value!
var a = [66,99,77];
66 in a //false
0 in a //true
var vv = {aa:11,bb:22};
"aa" in vv; //true
"cc" in vv //false
做实验的时候很容易 试成这样
var a = [1,2,3]; //undefined
1 in a; //true
不要被迷惑嘞
@gjc9620 了解,感谢。
@mokaikai 回的好快=。= 没事
mark!是不是应该: 用of操作符呢? var a = [1,2,3] if (1 of a) { console.log(‘something’) }
@hanzhong-yan of不还是迭代么。。还是indexOf最简单呢
@gjc9620 恩,现在看来还是indexOf,其实就是我要的of的意思
var a = [1,2,3] if ( a.indexOf(1) !=-1) { console.log(‘something’) }
@hanzhong-yan for of 是遍历对象的key吧。
@yhc-yhc for of 是遍历实现了Iterable接口的数据结构对象,array is iterable , generator function is iterable too .
@Chunlin-Li 学习了,感谢!
注意低版本的ie里,Array
是不支持indexOf
这个方法的。要兼容所有浏览器并且自己写的话,还是要用for