Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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数组_Javascript_Json_Typescript - Fatal编程技术网

在Javascript中修改JSON数组

在Javascript中修改JSON数组,javascript,json,typescript,Javascript,Json,Typescript,我希望json数组像这个数组一样唯一,并在其中创建price数组,如下所示quoteId匹配 输出 MyJsonArray = [{quoteId: "MqWmJkUzcP", price: 211, userName: "Test"},{quoteId: "OqgFavcIiR", price: 230, userName: "Aglowid"},{quoteId: "MqWmJkUzcP", price: 120}, {quoteId: "IFeiWnxMfq", price: 146,

我希望json数组像这个数组一样唯一,并在其中创建price数组,如下所示quoteId匹配

输出

MyJsonArray = 
[{quoteId: "MqWmJkUzcP", price: 211, userName: "Test"},{quoteId: "OqgFavcIiR", price: 230, userName: "Aglowid"},{quoteId: "MqWmJkUzcP", price: 120},
 {quoteId: "IFeiWnxMfq", price: 146, userName: "Test-2"},
 {quoteId: "pVL0CgIxaN", price: 155, userName: "Test-2"}]

很抱歉输入错误和语法错误,因为我是在mobile上问这个问题的

这是如何在纯javascript(es6)中实现的

const mergePrice=data=>data.reduce((结果,val)=>{
const{quoteId,price,userName}=val;
设obj=result.find(o=>o.quoteId==quoteId);
如果(!obj){
obj={quoteId,用户名,价格:[]};
结果:推送(obj);
}
目标价格推送(价格);
返回结果;
}, []);
const merged=mergePrice([{quoteId:“MqWmJkUzcP”,price:211,用户名:“Test”},{quoteId:“OqgFavcIiR”,price:230,用户名:“Aglowid”},{quoteId:“MqWmJkUzcP”,price:120},
{quoteId:“IFeiWnxMfq”,价格:146,用户名:“Test-2”},
{quoteId:“pvl0gixan”,价格:155,用户名:“Test-2”});

console.log(合并)
可能的重复是否确实希望
price
有时是数组,有时是数字?您应该考虑将它们全部排列成一些只包含一个值的数组。这通常可以通过一种称为“组BY”的技术来完成,这是通过许多常用的实用函数库(如LoTase/BuffScript)提供的。通过
Array.prototype.reduce
方法实现并不困难。发布的问题似乎根本不包括解决问题的方法。StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑问题以显示您已尝试过的内容,以便说明您在某个问题中遇到的具体问题。有关更多信息,请参阅并使用。
[{quoteId: "MqWmJkUzcP", price:[211,120], userName: "Test"},
 {quoteId: "OqgFavcIiR", price: 230, userName: "Aglowid"},
 {quoteId: "IFeiWnxMfq", price: 146, userName: "Test-2"},
 {quoteId: "pVL0CgIxaN", price: 155, userName: "Test-2"}]