Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将两个json对象数据合并为一个,json到新的单个json,_Javascript_Jquery_Arrays_Json_Object - Fatal编程技术网

Javascript 将两个json对象数据合并为一个,json到新的单个json,

Javascript 将两个json对象数据合并为一个,json到新的单个json,,javascript,jquery,arrays,json,object,Javascript,Jquery,Arrays,Json,Object,我对该对象的定义如下: var object = { "driver_data": [{ "slot": 0, "rideCount":98 }, { "slot": 30, "rideCount": 75 }, { "slot": 100, "rideCount": 0 }], "passenger_data": [{ "slot": 0, "rideCount":33 }, { "slot": 3

我对该对象的定义如下:

var object = {
  "driver_data": [{
    "slot": 0,
    "rideCount":98
  }, {
    "slot": 30,
    "rideCount": 75
  }, {
    "slot": 100,
    "rideCount": 0
  }],
  "passenger_data": [{
    "slot": 0,
    "rideCount":33
  }, {
    "slot": 30,
    "rideCount": 56
  }, {
    "slot": 100,
    "rideCount": 37
  }]
}
想要像这样转换:

[{"Slot":0,"passenger_data":98,"driver_data":33},
 {"Slot":30,"passenger_data":75,"driver_data":56},
 {"Slot":100,"passenger_data":0,"driver_data":37}
]
我试过了,但没用

var slot1=[],
德里德=[],
骄傲=[];
变量对象={
“驱动程序数据”:[{
“插槽”:0,
“rideCount”:98
}, {
“插槽”:30,
“rideCount”:75
}, {
“插槽”:100,
“rideCount”:0
}],
“乘客信息”:[{
“插槽”:0,
“rideCount”:33
}, {
“插槽”:30,
“rideCount”:56
}, {
“插槽”:100,
“rideCount”:37
}]
}
object.driver\u data.forEach(函数(键){
slot1.推(键.槽);
骄傲。推(键。rideCount)
});
object.passenger\u data.forEach(功能(键){
Dride.push(按键rideCount);
});
var myObj={},
myObj1={},
myObj2={},
monk=[‘插槽’、‘乘客数据’、‘驾驶员数据’];
var-arr=[];

对于(var i=0;i假设
驾驶员数据
乘客数据
时隙
顺序相同,您可以
映射
驾驶员数据
,如下所示:

var obj={“驾驶员数据”:[{“时隙”:0,“行车帐户”:98},{“时隙”:30,“行车帐户”:75},{“时隙”:100,“行车帐户”:0}],“乘客数据”:[{“时隙”:0,“行车帐户”:33},{“时隙”:30,“行车帐户”:56},{“时隙”:100,“行车帐户”:37}
让output=obj.driver_data.map((d,index)=>({
插槽:插槽,
驱动程序数据:d.rideCount,
乘客数据:对象.乘客数据[索引].rideCount
}))

console.log(输出)
您可以像这样使用
map

var object={“驱动程序数据”:[{“插槽”:0,“rideCount”:98},{“插槽”:30,“rideCount”:75},{“插槽”:100,“rideCount”:0}],“乘客数据”:[{“插槽”:0,“rideCount”:33},{“插槽”:30,“rideCount”:56},{“插槽”:100,“rideCount”:37};
var newObject=object.driver\u data.map(driver=>{
var passenger=object.passenger\u data.find(({slot})=>slot==driver.slot);
返回{
插槽:driver.slot,
乘客数据:passenger.rideCount,
驱动程序\u数据:driver.rideCount
}
});
console.log(newObject);
.as console wrapper{max height:100%!important;top:auto;}
您可以将带有
插槽的插槽作为键并收集所需的属性

var data={driver_data:[{slot:0,rideCount:98},{slot:30,rideCount:75},{slot:100,rideCount:0}],passenger_data:[{slot:0,rideCount:33},{slot:30,rideCount:56},{slot:100,rideCount:37},
结果=数组。从(['驾驶员数据','乘客数据']
.减少(
(m,key)=>数据[key]。减少(
(n,{slot,rideCount})=>n.set(slot,Object.assign(
{slot},
n、 获取(插槽),
{[key]:rideCount}
)),
M
),
新地图
)
.values()
);
console.log(结果);
.as控制台包装{最大高度:100%!重要;顶部:0;}
var对象={
“驱动程序数据”:[{
“插槽”:0,
“rideCount”:98
}, {
“插槽”:30,
“rideCount”:75
}, {
“插槽”:100,
“rideCount”:0
}],
“乘客信息”:[{
“插槽”:0,
“rideCount”:33
}, {
“插槽”:30,
“rideCount”:56
}, {
“插槽”:100,
“rideCount”:37
}]
}
var driver_data=object.driver_data;
var乘客_数据=object.passenger乘客_数据;
var结果=[];

对于(var i=0;i而不是使用find更好地首先从两个数据中的任何一个创建一个地图或对象,因为在地图或对象上搜索具有O(1)复杂性

var对象={
“驱动程序数据”:[{
“插槽”:0,
“rideCount”:98
}, {
“插槽”:30,
“rideCount”:75
}, {
“插槽”:100,
“rideCount”:0
}],
“乘客信息”:[{
“插槽”:0,
“rideCount”:33
}, {
“插槽”:30,
“rideCount”:56
}, {
“插槽”:100,
“rideCount”:37
}]
}
let data=object.driver\u data.reduce((acc,curr)=>{
acc[当前时隙]=当前rideCount;
返回acc;
}, {});
let out=object.passenger\u data.map({slot,rideCount})=>({slot,passenger\u data:rideCount,driver\u data:data[slot]});

console.log(out)
您的问题中没有JSON。JSON是看起来像JS对象的文本。您有JS对象。
var object = {
  "driver_data": [{
    "slot": 0,
    "rideCount":98
  }, {
    "slot": 30,
    "rideCount": 75
  }, {
    "slot": 100,
    "rideCount": 0
  }],
  "passenger_data": [{
    "slot": 0,
    "rideCount":33
  }, {
    "slot": 30,
    "rideCount": 56
  }, {
    "slot": 100,
    "rideCount": 37
  }]
}

var driver_data = object.driver_data;
var passenger_data = object.passenger_data;
var result = [];
for(var i=0;i<driver_data.length;i++){
    result.push({Slot:driver_data[i].slot,passenger_data:driver_data[i].rideCount,driver_data:passenger_data[i].rideCount});
}
console.log(result);