我想知道是否可以使用Spread Operator通过特定键在数组中添加元素。
let foo = ['a','b','c'];
foo = [...foo,'d'];
在这种情况下,foo[3]
将是d
。但是我可以在我的d
数组中添加带有custon键的foo
,然后使用类似foo['customKey']
的内容进行访问吗?
答案 0 :(得分:0)
数组是JavaScript中的对象,因此它们可以具有属性:
let foo = ['a','b','c'];
foo['customKey'] = 'd';
//Note using a for-in not for-of to iterate over enumerable & string properties
for (i in foo){
console.log("The type of index is also a string: ", typeof i, i);
}
实际上,当您使用数字索引访问数组元素时,它会被强制转换为字符串。
但是对于您的用例,您应该考虑使用一个对象:
let foo = {'foo' : ['a' , 'b','c']};
foo['customKey'] = 'd';
//Note using a for-in not for-of to iterate over enumerable & string properties
for (i in foo){
console.log(foo[i]);
}
//Using object destructing
const d = {'anotherKey': 'e'};
const newFoo = {...foo, ...d};
console.log(newFoo);
答案 1 :(得分:0)
您可以采用Object.assign
而不是散布数组,因为这仅允许为新数组采用iterable项。
let foo = ['a','b','c'];
foo = Object.assign([], [...foo], { customKey: 'd' });
console.log(foo);
console.log(foo.customKey);