Как мне выделить массив из массива объектных литералов?

У меня есть этот массив, в котором каждый индекс содержит литерал объекта. Все литералы объектов имеют одинаковые свойства. Некоторые литералы объектов имеют одинаковое значение для данного свойства, и я хочу создать новый массив, содержащий только эти литералы объектов.

Моя идея состоит в том, чтобы отсортировать массив и разрезать его на новый массив...

Вот массив:

var arr = [];

arr[0] =
{
    country: "United States",
    num: 27
};

arr[1] =
{
    country: "Australia",
    num: 5
};

arr[2] =
{
    country: "United States",
    num: 7
};


Итак, я хочу создать новый массив, содержащий только те объекты, у которых свойство странаравно «США». Пока это моя безумная идея, которая не работает:

function getNewArray(arr)
{
    var arr2 = [];

    for(var key in arr)
    {
        for(var i = 0; i < arr.length - 1; i++)
        {
            if(arr.hasOwnProperty(key) && arr[i].name == arr[i + 1].name)
            {
                    arr2[i] = arr.slice(key);
            }
        }
    }

    return arr2;
}

var arr3 = getNewArray(arr).sort();
5
задан Ian Campbell 31 May 2012 в 05:27
поделиться