簡體   English   中英

如何創建具有屬性的JavaScript數組?

[英]How do I make a JavaScript array that has properties?

RegExp.exec函數返回看起來像混合數組的東西 它是一個數組,但它有屬性。

console.log(/d(b+)(d)/i.exec("cdbBdbsbz"));
// => ["dbBd", "bB", "d", index: 1, input: "cdbBdbsbz"]

我可以調用result[0]result[1]result.indexresult.input等。

我該怎么做自己的?

[0, 1, "a": 1]顯然是語法錯誤,而{"0": 1, "1": 1, "a": 1} 確實給了我一個可以索引和訪問屬性的對象,但它 exec返回的內容不同。

我嘗試用__proto__做到這一點:

arr = [1, 2, 3];
arr.__proto__.a = 1 // arr.a is 1 now

但是console.log不會像運行exec的結果那樣顯示屬性,所以我懷疑它仍然不是一回事。

足夠簡單 - javascript中的數組只是一個對象,您可以附加您喜歡的任何屬性:

var test = ["foo","bar","baz"];
test.index = 1;
test.input="foobarbaz";
console.log(test);

console.log看起來與regex.exec返回的regex.exec

實例: http//jsfiddle.net/9rCmJ/

你是說這個嗎?

var arr = [0, 1];
arr.a = 1;

數組也是一個對象,因此您可以直接設置屬性:

var myArray = ['a', 'b'];
console.log(typeof myArray); // 'object'
myArray.say = 'hi';

分兩步完成:

var a = [1, 2, 3];
a.test = "Hello world";

暫無
暫無

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

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