Разделение массива объектов
Есть массив объектов
[
{
"id": 1,
"type": "internal",
"text": "Text",
"checked":false,
"disabled":false
},
{
"id": 2,
"type": "external",
"text": "Text2",
"checked":true,
"disabled":false
},
{
"id": 3,
"type": "internal",
"text": "Text3",
"checked":false,
"disabled":true
},
{
"id": 4,
"type": "internal",
"text": "Text4444",
"checked":false,
"disabled":false
},
{
"id": 5,
"type": "external",
"text": "Text55555",
"checked":true,
"disabled":true
}
]
Как в цикле разделить его на двухмерный массив по параметру "type". То-есть что бы external и internal были отдельно. Спасибо! |
И в чем проблема? Делаешь массив в котором элементами будут 2 массива и раскидываешь по ним объекты в зависимости от типа.
|
arr = [
{
"id": 1,
"type": "internal",
"text": "Text",
"checked":false,
"disabled":false
},
{
"id": 2,
"type": "external",
"text": "Text2",
"checked":true,
"disabled":false
},
{
"id": 3,
"type": "internal",
"text": "Text3",
"checked":false,
"disabled":true
},
{
"id": 4,
"type": "internal",
"text": "Text4444",
"checked":false,
"disabled":false
},
{
"id": 5,
"type": "external",
"text": "Text55555",
"checked":true,
"disabled":true
}
];
function diffByType(arr){
var out = [[],[]];
arr.forEach(function(elem){
out[+(elem.type === 'external')].push(elem);
});
return out
}
alert(JSON.stringify(diffByType(arr),null,'\t'))
|
| Часовой пояс GMT +3, время: 18:00. |