У меня есть следующий массив
var x = [
'{"id":"item1","val":"Items"}',
'{"id":"item1","val":"Items"}',
'{"id":"item2","val":"Items"}',
'{"id":"item2","val":"Items"}',
'{"id":"item3","val":"Items"}',
'{"id":"item2","val":"Items"}'
];
Я хочу создать уникальный массив с помощью ключа id
, как показано ниже:
[
'{"id":"item1","val":"Items"}',
'{"id":"item2","val":"Items"}',
'{"id":"item3","val":"Items"}'
];
-4
Mehul Mali
26 Дек 2016 в 10:30
2
Проверьте это: stackoverflow .com / questions / 19501441 /…
– Avnesh Shakya
26 Дек 2016 в 10:32
Является ли x массивом строк или объектов?
– Hmahwish
26 Дек 2016 в 10:32
3 ответа
Вы можете использовать array.filter
var x = [
'{"id":"item1","val":"Items"}',
'{"id":"item1","val":"Items"}',
'{"id":"item2","val":"Items"}',
'{"id":"item2","val":"Items"}',
'{"id":"item3","val":"Items"}',
'{"id":"item2","val":"Items"}'
];
var unique = x.filter(function(elem, index, self) {
return index == self.indexOf(elem);
})
console.log(unique);
2
Sajeetharan
26 Дек 2016 в 10:36
Если бы вы могли использовать jQuery:
var obj = {};
$.each(x,function(index,val){
var temp = JSON.parse(val);
obj[temp.id] = val;
})
var tempArray = [];
for(var i in obj){
tempArray.push(obj[i])
}
console.log(tempArray);
0
Nitesh
26 Дек 2016 в 10:37
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.