簡體   English   中英

Javascript - 帶有布爾鍵的數組?

[英]Javascript - Array with Boolean Keys?

我對Javascript比較陌生,可能只是一個我不熟悉的技巧,但是如何為Array鍵分配布爾值呢?

發生了什么:

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

您不能在數組中使用任意索引,但您可以使用對象文字來(完成)完成您所追求的內容:

var test = {};
test[false] = "asdf";
test['false'] = "fdsa";

但是應該注意,對象屬性必須是字符串(或可以轉換為字符串的類型)。 使用布爾基元最終會創建一個名為'false'的對象屬性。

test[false] === test['false'] === test.false

這就是為什么你的第一個例子的Object.keys().length調用只返回1

有關JavaScript中對象的優秀入門指南,我建議MDN 使用對象

Javascript中的數組不是關聯的, 因此您無法為其中的鍵指定值。

var test = [];
test.push(true);  // [true]
test.push(false); // [true, false]

你對一個對象感興趣!

var test    = {};
test[true]  = "Success!";
test[false] = "Sadness";  // {'false': "Sadness", 'true': "Success"}

Javascript數組僅基於數字索引。 你可以使用0和1作為鍵(雖然我不能想到你需要布爾鍵的情況)。 myArr[0] = "mapped from false"; myArr[1] = "mapped from true";

你也可以扭轉上面的答案,比如

let test = [true];

console.log(typeof test);

// Output: Object True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM