RegExp.exec
函数 returns something that looks like a hybrid array .它是一个数组,但它具有属性。
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
返回的相同。
关于javascript - 如何制作具有属性的 JavaScript 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13562661/