我是Javascript的新手,可能只有一个我不熟悉的技巧,但是我如何将布尔值赋给数组键呢?
发生了什么:
var test = new Array();
test[false] = "asdf";
test['false'] = "fdsa";
Object.keys(test); // Yield [ "false" ]
Object.keys(test).length; // Yield 1我想要发生的事情:
var test = new Array();
//Some stuff
Object.keys(test); // Yield [ "false" , false ]
Object.keys(test).length; // Yield 2发布于 2013-01-24 12:34:51
您不能在数组中使用任意索引,但您可以使用对象文字来(某种程度上)完成您想要的内容:
var test = {};
test[false] = "asdf";
test['false'] = "fdsa";但是,应该注意的是,对象属性必须是字符串(或可以转换为字符串的类型)。使用布尔原语将最终创建一个名为'false'的对象属性。
test[false] === test['false'] === test.false这就是为什么您的第一个示例的Object.keys().length调用只返回1。
关于JavaScript中对象的入门指南,我推荐MDN的。
发布于 2013-01-24 12:34:17
Javascript中的数组不是关联的,因此您不能为其中的键赋值。
var test = [];
test.push(true); // [true]
test.push(false); // [true, false]您对某个对象感兴趣!
var test = {};
test[true] = "Success!";
test[false] = "Sadness"; // {'false': "Sadness", 'true': "Success"}发布于 2013-01-24 12:33:54
Javascript数组仅基于数字索引。您可以使用0和1作为键(尽管我想不出需要布尔键的情况)。myArr[0] = "mapped from false"; myArr[1] = "mapped from true";
https://stackoverflow.com/questions/14493986
复制相似问题