Javascript 复制同一对象的另一个键中的对象键
我有与Javascript 复制同一对象的另一个键中的对象键,javascript,ecmascript-6,Javascript,Ecmascript 6,我有与对象关联的数组列表。要求是制作一个包含所有键值的新键 var obj = { all:[ obj.one, obj.two ], one:[ 'a', 'b', 'c' ], two:[ 'd', 'e', 'f', 'g' ] } //想要的结果 var obj = { all:[ 'a', 'b', 'c' 'd', 'e',
对象关联的数组列表
。要求是制作一个包含所有键值的新键
var obj = {
all:[
obj.one,
obj.two
],
one:[
'a',
'b',
'c'
],
two:[
'd',
'e',
'f',
'g'
]
}
//想要的结果
var obj = {
all:[
'a',
'b',
'c'
'd',
'e',
'f',
'g'
],
one:[
'a',
'b',
'c'
],
two:[
'd',
'e',
'f',
'g'
]
}
示例:
函数累加键值(obj){
累计风险值=[];
for(obj中的var键)
累计=累计的.concat(obj[key]);
obj[“全部”]=累计;
}
var obj={
一:[
“a”,
“b”,
“c”
],
二:[
“d”,
"e",,
"f",,
“g”
]
};
累积值(obj);
控制台日志(obj)代码>您可以获取对象的所有键,并获取新数组的所有值
var obj={1:['a','b','c'],2:['d','e','f','g']};
obj.all=Object.keys(obj).reduce(函数(r,k){
返回r.concat(obj[k]);
}, []);
控制台日志(obj)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}
请添加所需结果。您尝试了什么?为什么要将所有密钥存储在另一个属性中?我猜他有一个具有“一”和“两”属性的对象,他希望有一个“所有”属性,该属性引用其他两个属性。。。这样的迷宫,为什么?用“obj.1”和“obj.2”代替“obj.all”不是更容易吗?你把事情复杂化了…还要注意,all:[obj.one,obj.two]
不会复制键。它将复制数组的引用,当然,假设值将是所有数组。
function accumulateKeyValues(obj){
var accumulated = [];
for(var key in obj)
accumulated = accumulated.concat(obj[key]);
obj["all"] = accumulated;
}