我有一个包含多个这样的数组的对象
someObj = {
array1:['a', 'b'],
array2:['a', 'b', 'c'],
array3:['a', 'b', 'c', 'd']
}
JS/ES6 中是否有内置方法或属性返回最大数组或最大数组的长度?请推荐
您可以使用
Array.prototype.reduce
并根据数组长度检查累加器的值。
使用
Object.values()
获取数组的所有值。
var someObj = {
array1:['a', 'b'],
array2:['a', 'b', 'c'],
array3:['a', 'b', 'c', 'd'],
array4:['a', 'b', 'c']
}
var maxLength = Object.values(someObj).reduce((a,e) => { return a > e.length ? a:e.length}, 0);
console.log(maxLength);
您可以使用
Object.values
获取任何对象的所有值。这是一个简洁的单例,它将与 reduce
结合返回最长的列表:
const longestList = Object.values(someObj)
.reduce((longest, list) => list.length > longest.length ? list : longest)
您可以简单地使用 for 循环并迭代它来比较数组的长度。
var someObj = {
array1: ['a', 'b'],
array2: ['a', 'b', 'c'],
array3: ['a', 'b', 'c', 'd']
}
var max = 0;
for (x in someObj) {
someObj[x].length > max ? max = someObj[x].length : max;
}
console.log(max);