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

Javascript 根据值的权重从JSON对象中删除重复值

Javascript 根据值的权重从JSON对象中删除重复值,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我不熟悉JS和JSON。我有一个像这样的JSON对象 {"q1":[{"name":"p1","weight":64},{"name":"p3","weight":56}],"q2":[{"name":"p1","weight":56},{"name":"p2","weight":56},{"name":"p4","weight":56},{"name":"p5","weight":56},{"name":"p6","weight":64}],"q3":[{"name":"p1","weight

我不熟悉JS和JSON。我有一个像这样的JSON对象

{"q1":[{"name":"p1","weight":64},{"name":"p3","weight":56}],"q2":[{"name":"p1","weight":56},{"name":"p2","weight":56},{"name":"p4","weight":56},{"name":"p5","weight":56},{"name":"p6","weight":64}],"q3":[{"name":"p1","weight":48},{"name":"p2","weight":64},{"name":"p3","weight":64}],"q4":[{"name":"p1","weight":64},{"name":"p1","weight":106},{"name":"p2","weight":56},{"name":"p3","weight":56},{"name":"p3","weight":112}],"q5":[{"name":"p1","weight":64},{"name":"p1","weight":113},{"name":"p2","weight":49},{"name":"p3","weight":56},{"name":"p3","weight":56},{"name":"p4","weight":49},{"name":"p5","weight":49},{"name":"p6","weight":56}],"q6":[]}
我想删除重复的值,只保留一个最大权重的值,就像Q4一样,我有两个P1值。但我这里只需要1个,最大的重量是106

我想要一个像这样的东西

{"q1":[{"name":"p1","weight":64},{"name":"p3","weight":56}],"q2":[{"name":"p1","weight":56},{"name":"p2","weight":56},{"name":"p4","weight":56},{"name":"p5","weight":56},{"name":"p6","weight":64}],"q3":[{"name":"p1","weight":48},{"name":"p2","weight":64},{"name":"p3","weight":64}],"q4":[{"name":"p1","weight":106},{"name":"p2","weight":56},{"name":"p3","weight":112}],"q5":[{"name":"p1","weight":113},{"name":"p2","weight":49},{"name":"p3","weight":56},{"name":"p4","weight":49},{"name":"p5","weight":49},{"name":"p6","weight":56}],"q6":[]}
函数keepBiggest(arr){//获取一个对象数组并返回具有最大权重的唯一值
var hash={};//哈希对象的哈希值为最大值
forEach(函数(o){//对于数组arr中的每个对象o
if(hash[o.name]){//如果我们已经对这个对象进行了hash,那么它就是一个同名的对象
if(hash[o.name].weightconsole.log(对象)创建一个使用名称作为键的对象,值为权重。循环遍历原始数组,测试当前元素的权重是否大于对象对应元素中的权重。