首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript - Array with Boolean Keys?

Javascript - Array with Boolean Keys?
EN

Stack Overflow用户
提问于 2013-01-24 12:30:07
回答 4查看 11.8K关注 0票数 7

我是Javascript的新手,可能只有一个我不熟悉的技巧,但是我如何将布尔值赋给数组键呢?

发生了什么:

代码语言:javascript
复制
var test = new Array();
test[false] = "asdf";
test['false'] = "fdsa";

Object.keys(test); // Yield [ "false" ]
Object.keys(test).length; // Yield 1

我想要发生的事情:

代码语言:javascript
复制
var test = new Array();

//Some stuff

Object.keys(test); // Yield [ "false" , false ]
Object.keys(test).length; // Yield 2
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-24 12:34:51

您不能在数组中使用任意索引,但您可以使用对象文字来(某种程度上)完成您想要的内容:

代码语言:javascript
复制
var test = {};
test[false] = "asdf";
test['false'] = "fdsa";

但是,应该注意的是,对象属性必须是字符串(或可以转换为字符串的类型)。使用布尔原语将最终创建一个名为'false'的对象属性。

代码语言:javascript
复制
test[false] === test['false'] === test.false

这就是为什么您的第一个示例的Object.keys().length调用只返回1

关于JavaScript中对象的入门指南,我推荐MDN的。

票数 11
EN

Stack Overflow用户

发布于 2013-01-24 12:34:17

Javascript中的数组不是关联的,因此您不能为其中的键赋值。

代码语言:javascript
复制
var test = [];
test.push(true);  // [true]
test.push(false); // [true, false]

您对某个对象感兴趣!

代码语言:javascript
复制
var test    = {};
test[true]  = "Success!";
test[false] = "Sadness";  // {'false': "Sadness", 'true': "Success"}
票数 3
EN

Stack Overflow用户

发布于 2013-01-24 12:33:54

Javascript数组仅基于数字索引。您可以使用0和1作为键(尽管我想不出需要布尔键的情况)。myArr[0] = "mapped from false"; myArr[1] = "mapped from true";

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14493986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档