如何在javascript中将ForEach构造成映射

如何在javascript中将ForEach构造成映射,javascript,json,ecmascript-6,Javascript,Json,Ecmascript 6,我有样本JSON,格式为 var-sample=[{“id”:200,“children”:[{“value”:300,“type”:“SINGLE”},{“value”:400,“type”:“CLASSIC”},{“value”:600,“type”:“DUAL”},{“id”:300,“children”:[{“value”:500,“type”:“TRIO”},{“value”:600,“type”:“music”},{“value”:700,“type”:“UMBRELA”}] va

我有样本
JSON
,格式为

var-sample=[{“id”:200,“children”:[{“value”:300,“type”:“SINGLE”},{“value”:400,“type”:“CLASSIC”},{“value”:600,“type”:“DUAL”},{“id”:300,“children”:[{“value”:500,“type”:“TRIO”},{“value”:600,“type”:“music”},{“value”:700,“type”:“UMBRELA”}]
var结果=[];
sample.forEach(函数(e){
设obj={}
对象id=e.id
obj['somekey']=e.children[0]。值
obj['someanotherkey']=e.children[1]。键入
结果:推送(obj);
})
log(result)
返回一个数组,因此必须设置一个变量来保存该结果。然后,在循环中,使用
return
有效地将项目推送到数组中

var-sample=[{“id”:200,“children”:[{“value”:300,“type”:“SINGLE”},{“value”:400,“type”:“CLASSIC”},{“value”:600,“type”:“DUAL”},{“id”:300,“children”:[{“value”:500,“type”:“TRIO”},{“value”:600,“type”:“music”},{“value”:700,“type”:“UMBRELA”}];
让结果=sample.map(函数(e){
设obj={}
对象id=e.id;
obj['value']=e.children[0]。值;
obj['type']=e.children[0]。类型
返回obj;
});

控制台日志(结果)您可以使用map执行此操作。Map返回一个新数组。所以你可以这样做

var-sample=[{“id”:200,“children”:[{“value”:300,“type”:“SINGLE”},{“value”:400,“type”:“CLASSIC”},{“value”:600,“type”:“DUAL”},{“id”:300,“children”:[{“value”:500,“type”:“TRIO”},{“value”:600,“type”:“music”},{“value”:700,“type”:“UMBRELA”}];
结果=sample.map(e=>{return{id:e.id,value:e.children[0]。value,type:e.children[0]。type})
console.log(结果)
var-sample=[{“id”:200,“children”:[{“value”:300,“type”:“SINGLE”},{“value”:400,“type”:“CLASSIC”},{“value”:600,“type”:“DUAL”},{“id”:300,“children”:[{“value”:500,“type”:“TRIO”},{“value”:600,“type”:“music”},{“value”:700,“type”:“UMBRELA”}]
var output=sample.map(({id,children})=>({id,…children[0]}));

控制台日志(输出)
如果您希望能够选择
子项
索引:

const getDataChild = (a, i) => a.map(({id, children:ch}) => ({id, ...ch[i]}));

console.log(getDataChild(sample, 0)); // where 0 is the desired index

result
在哪里声明?为什么您对其他数组对象不感兴趣,而只对
[0]
第1个对象感兴趣?@RokoC.Buljan我需要所有这些对象,但我会在1号知道如何做后再做