javascript - 如何将 json 数组中的重复值追加到另一个数组?不从数组中删除

标签 javascript arrays

此数组(目录)包含重复值。我需要将重复值附加到数组中。

此处按类别和名称检查重复条目。

var catalog = {
  products : [
      { category: 'fos', name: 'retek' },
      { category: 'fos', name: 'item' },
      { category: 'nyedva', name: 'blabla' },
      { category: 'fos', name: 'retek' },
  ]
};
var categories = [];

$.each(catalog.products, function(index, value) {
  if ($.inArray(value.category, categories) == -1) { 
    //do nothing
  } else {

    if ($.inArray(value.name, categories) == -1) {   
      //do nothing
    } else {
      //add duplicate values to array
      categories.push(value.name);    
    }
  }
});

console.log(categories);

DEMO

最佳答案

var catalog={
    products : [
        { category: 'fos', name: 'retek' },
        { category: 'fos', name: 'item' },
        { category: 'nyedva', name: 'blabla' },
        { category: 'fos', name: 'retek' },
    ]
};

var categories = [],
    duplicates = [];

$.each(catalog.products, function(index, obj) {
    var key = JSON.stringify(obj);
    if (categories[key] === undefined) {
        categories[key] = obj;
    } else {
        duplicates[key] = obj;
    }
});

duplicates = Object.keys(duplicates).map(function (key) {
    return duplicates[key]
});

console.log(categories);
console.log(duplicates);
console.log(duplicates.length);
console.log(duplicates[0]);

demo

关于javascript - 如何将 json 数组中的重复值追加到另一个数组?不从数组中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31807264/

相关文章:

c - 高效搜索数组中的一系列值?理想情况下 OpenCL 可用吗?

javascript - Canvas HTML5 数据点到数组

javascript - 相当于 Python str() 方法的 JS

javascript - 在更大的设备上预览 css @media 屏幕(最大宽度)

javascript - 如何在 jQuery 中引用按钮?

android - 如何以编程方式将项目添加到 arrayList 中的字符串数组?

c++ - 动态内存分配并接受输入

javascript - 数组中的图像对象未定义

javascript - 将网站更改为 m。在移动设备上时

javascript - 使用 JSDoc 在自执行函数中记录对象