在JavaScript中,如果我运行以下代码:
<script type="text/javascript">
var nameStr = 'Chris Kate Steve';
var names = nameStr.split(/[ ]/);
var names2 = nameStr.split(' ');
for (var i in names)
{
alert(i);
}
for (var i in names2)
{
alert(i);
}
</script>
会发出警告:
0
1
2
索引
输入
第一组和:
0
1
2
第二组。
知道为什么会这样吗?
答案 0 :(得分:4)
for...in
迭代对象的属性 - 将它与数组一起使用是不可靠的,应该避免。使用for(var i=0; i < names.length; i++)
,您的问题就会得到解决。
只是split使用regexp将结果返回给结果。
答案 1 :(得分:1)
split
方法返回一个子字符串数组。因此返回的Array
对象只是将其元素作为其内容。
split
方法返回一个Array
对象,该对象在其数字索引位置具有子字符串,输入字符串和第一个匹配的索引存储在它们各自的属性中(就像返回一样)值string.match()
/ regex.exec()
函数) - 因此input
和index
属性。