我正在尝试获取元素数量最多的对象并获取元素数量。
我目前有以下内容:
var array = [
[{
'id': 1,
'value': 100
}, {
'id': 1,
'value': 100
}],
[{
'id': 1,
'value': 100
}, {
'id': 1,
'value': 100
}, {
'id': 1,
'value': 100
}],
[{
'id': 1,
'value': 100
}, {
'id': 1,
'value': 100
}]
];
for (var i = 0; i < array.length; i++) {
console.log(array[i].length);
//Here I need to get the bigger number in this case is 3, because I need it to another validations inside this for loop
}
在这种情况下,我知道什么是更大的对象,但是我需要获取数字并将其保存在变量中,因为之后需要进行一些验证。
我希望你能理解我并帮助我
答案 0 :(得分:1)
您可以使用reduce
来获取最大的子数组(然后是其长度):
var array = [
[{
'id': 1,
'value': 100
},
{
'id': 1,
'value': 100
}
],
[{
'id': 1,
'value': 100
},
{
'id': 1,
'value': 100
},
{
'id': 1,
'value': 100
}
],
[{
'id': 1,
'value': 100
},
{
'id': 1,
'value': 100
}
]
];
var largest = array.reduce((a, c) => a.length < c.length ? c : a);
console.log(largest);
console.log(largest.length);
答案 1 :(得分:0)
您只需在sort
中按长度descending order
即可获得top element
:
var array = [ [{ 'id': 1, 'value': 100 }, { 'id': 1, 'value': 100 }], [{ 'id': 1, 'value': 100 }, { 'id': 1, 'value': 100 }, { 'id': 1, 'value': 100 }], [{ 'id': 1, 'value': 100 }, { 'id': 1, 'value': 100 }] ];
const r = array.sort((a,b) => b.length - a.length)[0]
console.log('element:', r, ', length:', r.length)
答案 2 :(得分:0)
下面的代码应找到最长的数组并显示其内容和长度。您还需要查找其他一些数据并将其存储在变量中吗?
var array = [
[{
'id': 1,
'value': 100
}, {
'id': 1,
'value': 100
}],
[{
'id': 1,
'value': 100
}, {
'id': 1,
'value': 100
}, {
'id': 1,
'value': 100
}],
[{
'id': 1,
'value': 100
}, {
'id': 1,
'value': 100
}]
];
var result = {
length: 0
};
for (var i = 0; i < array.length; i++) {
if(array[i].length >= result.length){
result = array[i];
}
}
console.log(result.length);
console.log(result);
答案 3 :(得分:0)
遍历数组的每个元素,检查每个子数组的长度,并存储子数组最大长度的索引。
var array = [ [{ 'id': 1, 'value': 100 }, { 'id': 1, 'value': 100 }], [{ 'id': 1, 'value': 100 }, { 'id': 1, 'value': 100 }, { 'id': 1, 'value': 100 }], [{ 'id': 1, 'value': 100 }, { 'id': 1, 'value': 100 }] ];
var subArrayLength = 0;
var index = 0;
for(var i = 0; i < array.length; i++)
{
if(subArrayLength < array[i].length){
index = i;
subArrayLength = array[i].length;
}
}
console.log(array[index]);
console.log(index);