我有这个数组,其中每个索引都包含一个对象文字。所有对象字面量都具有相同的属性。某些对象文字对于给定属性具有相同的值,我想创建一个仅包含这些对象文字的新数组。
我的想法是对数组进行排序,并将其切片成一个新数组......
这是数组:
var arr = [];
arr[0] =
{
country: "United States",
num: 27
};
arr[1] =
{
country: "Australia",
num: 5
};
arr[2] =
{
country: "United States",
num: 7
};
所以,我想创建一个新数组,其中只包含属性country
为“美国”的那些对象。到目前为止,这是我的疯狂想法,但它不起作用:
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();