对于例如我的
Mainarray = [{label:a,value:5} ,
{label :b , value :4 },
{label :c , value :10},
{label :d , value :5}]
我要排序的数组是
array1 = [ {label :c ,value 5},{label :a ,value:2}
在对array1进行排序之后,它必须像这样
sortedarray= [{label:a,value :2} ,
{label :b , value :0 },
{label :c , value :5},
{label :d , value :0}]
所以基本上,它必须相对于MainArray Label进行排序,并且如果该标签在array1中不存在,它应该在相同索引上附加值为0的相同标签。
您可以在中收集新值,Map
然后将数据数组映射为新值或零。
var data = [{ label: 'a', value: 5 }, { label: 'b', value: 4 }, { label: 'c', value: 10 }, { label: 'd', value: 5 }],
array = [{ label: 'c', value: 5 }, { label: 'a', value: 2 }],
values = new Map(array.map(({ label, value }) => [label, value])),
result = data.map(({ label }) => ({ label, value: values.get(label) || 0 }));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句