此数组(目录
)包含重复值。我需要将重复值附加到数组中。
此处按类别和名称检查重复条目。
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);
最佳答案
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]);
关于javascript - 如何将 json 数组中的重复值追加到另一个数组?不从数组中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31807264/