Javascript 从数组中添加json键
我试图从数组的项向JSON添加元素,但我很难将元素传递给JSON 这是我的密码:Javascript 从数组中添加json键,javascript,jquery,arrays,json,dictionary,Javascript,Jquery,Arrays,Json,Dictionary,我试图从数组的项向JSON添加元素,但我很难将元素传递给JSON 这是我的密码: var j={ “根”:{ “a”:“180012003100”, “b”:“150019992001”, “c”:“40,60,50”, “d”:“这是不需要的”, “e”:“也不是这个” } }; 变量根=j.根, l=根.a.拆分(“,”).长度, 散列=[“a”、“b”、“c”]; 对于(变量i=0;i
var j={
“根”:{
“a”:“180012003100”,
“b”:“150019992001”,
“c”:“40,60,50”,
“d”:“这是不需要的”,
“e”:“也不是这个”
}
};
变量根=j.根,
l=根.a.拆分(“,”).长度,
散列=[“a”、“b”、“c”];
对于(变量i=0;i log(JSON.stringify(j))
您可以使用Object.keys
,它将在散列
变量中为您提供对象的键。然后,您的代码将动态检测Root
对象中所有可能的键:
var j={
“根”:{
“a”:“180012003100”,
“b”:“150019992001”,
“c”:“40,60,50”,
“d”:“152199,21”,
“e”:“15,19200”
}
};
变量根=j.根,
l=根.a.拆分(“,”).长度,
散列=[“a”、“b”、“c”];
对于(变量i=0;i log(JSON.stringify(j))代码>您可以迭代键并构建新属性
var object={Root:{a:{180012003100],b:'150019992001',c:'40,60,50',d:'this not needed',e:'northis'},
reference=object.Root;
对象
.钥匙(参考)
.forEach(k=>{
var values=reference[k]。拆分(',');
如果(values.length==1){
返回;
}
值。forEach((v,i)=>{
参考['row_'+i]=参考['row_'+i]| |{};
参考['row_u'+i][k]=v;
});
删除参考文献[k];
});
console.log(对象)代码>
。作为控制台包装{max height:100%!important;top:0;}
您可以使用以下方法获得所需的结果
演示
const root={
“根”:{
“a”:“180012003100”,
“b”:“150019992001”,
“c”:“40,60,50”,
“d”:“这是不需要的”,
“e”:“也不是这个”
}
},
哈希=[“a”、“b”、“c”],
keys=Object.keys(root.root);
让结果=Object.values(root.root).reduce((obj,value,index)=>{
if(value.match(',')){
value=value.split(',');
obj[`row_${index}`]=hash.reduce((对象、键、索引)=>{
对象[键]=值[索引];
返回对象;
}, {});
}否则{
obj[键[索引]]=值;
}
返回obj;
}, {})
控制台日志(结果)代码>您拥有的是一个JavaScript对象。数组在哪里?您的预期输出是什么?@phuzi,谢谢您的评论,您能帮忙吗?@AnkitAgarwal数组是散列,我的预期输出是正确的,但我不想显式命名数组中的每个元素loop@Jonathan好的,我添加了一个答案问题是我不会使用对象的所有键,我只会使用那些可以拆分的,你这是什么意思@Jonathan@Jonathan检查now@Andreas钥匙不具体。您可以看到,有一个hash
变量,表示只有hash
中的变量需要为keys@Andreas检查OP的要求。他说他只想要hash
变量,而不是所有的键。因此,可能存在这样的情况,hash
变量与键的名称是已知的。d&e发生了什么事?@Jonathan我也包括了d
&e
。请查收