打印具有相同属性的重复项目
如何获取项目重复属性并将其推送到对象中?打印具有相同属性的重复项目
比如我有:
var object = { "1" :{"ip": 4}, "2" :{"ip": 3}, "3" :{"ip": 4}, "4" :{"ip": 3}} 我希望有一个对象或数组,其中我将不得不[[1,3], [2,4]]
回答:
我期望有一个物体或阵列,其中我将具有{[1,3],[2,4]}
如果指[[1,3], [2,4]] ,然后用reduce和Object.values
演示
var object = { "1" :{"ip": 4}, "2" :{"ip": 3}, "3" :{"ip": 4}, "4" :{"ip": 3}};  var output = Object.values(Object.keys(object).reduce(function(a, b){  
    var key = object[ b ].ip; //key to be used for grouping the values  
    a[ key ] = a[ key ] || [];  
    a[ key ].push(Number(b));  
    return a;  
} ,{}));  
console.log(output.reverse());
回答:
您可以使用reduce()和ES6 Map并返回数组的数组。
var object = { "1" :{"ip": 4}, "2" :{"ip": 3}, "3" :{"ip": 4}, "4" :{"ip": 3}}  var result = [...Object.keys(object).reduce((r, e) => {  
    let ip = object[e].ip  
    if(!r.get(ip)) r.set(ip, [e]);  
    else r.get(ip).push(e);  
    return r;  
}, new Map).values()];  
console.log(result)
回答:
您可以使用array#reduce和JSON.stringify价值观为重点,并添加具有相同价值观的关键。
var object = { "1" :{"ip": 4}, "2" :{"ip": 3}, "3" :{"ip": 4}, "4" :{"ip": 3}};  var result = Object.keys(object).reduce((map,key) => {  
    var k = JSON.stringify(object[key]);  
    map[k] = map[k] || [];  
    map[k].push(key);  
    return map;  
},{});  
var output = Object.values(result);  
console.log(output);
以上是 打印具有相同属性的重复项目 的全部内容, 来源链接: utcz.com/qa/263690.html


