[英]How do I make an object that has infinite depth through arbitrary properties in 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.index
, result.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.