Javascript数组-忽略额外的索引值
Javascript Arrays - Ignoring Extra Index Values
在Firefox, Safari和Chrome(没有尝试IE)中使用Javascript,会发生以下奇怪的行为:
data = new Array(1,3,5,7,9);
data[1,7,3] = 88;
alert( data ); // displays: 1,3,5,88,9
显然索引[3]处的值已经改变了(其他测试表明它实际上改变了数据[3])。
第二个命令不产生错误。它甚至不会在NetBeans中生成警告,也不会在浏览器中显示错误。
我进一步探讨了这个问题。看来:
data[1,7,null,NaN,4,3]
也被解释为数据[3]-这也适用于3以外的其他值。
使用列表中的最后一个值,其余的将被忽略。
这种行为是否有某种意义或目的,或者它只是解析器中的一个意外错误?
我找不到这个行为/语法的任何文档或解释。
您正在使用逗号操作符。
<expr1>, <expr2>, <expr3>, ...
是一个表达式,它从左到右计算每个表达式,并返回最后一个表达式的值。所以1,7,3
等于3
。所以
data[1,7,3] = 88;
等价于:
data[3] = 88;
相关文章:
- Lodash 从值数组中查找数组中的值
- 使用函数索引到数组中
- AngularJS-ng使用字符串索引在数组上重复
- 使用Undercore获取属性值数组
- 选择具有值数组的所有元素的最有效方法
- 使用jquery grep过滤具有值数组的json对象
- 如何使用JQuery将值数组插入到数据库中
- 创建属性值数组,其中属性名称以特定字符串结尾
- 如何在jqueryajax中发布值数组
- 如何在不赋值数组变量的情况下读取数组数据
- Lodash 从与值数组不匹配的数组中获取项目
- 下划线,将对象列表转换为对象值数组
- JavaScript:按索引交换数组值
- 通过索引设置数组对象的值会设置所有数组项
- 如何获取基于索引数组的值数组
- 从81个元素索引的数组中获取行和列值
- Javascript比较索引与数组值
- 查找javascript的索引"对象数组"基于对象字段值
- 按索引返回数组值,如果给定else,则返回数组
- 按单击元素的索引从数组中弹出值