Pau*_*nes 9 javascript arrays jquery
如果我有以下数组:
array = ['a', 'abcde', 'ab'] ;
Run Code Online (Sandbox Code Playgroud)
我想获得数组元素的最大长度,即5(对于元素'abcde').
我知道你可以通过(例如)array [1] .length获取数组元素的长度,但我不知道如何获得最大长度.
JavaScript或jQuery中的任何答案都会很棒.
TIA
保罗琼斯
And*_*y E 21
单行为您:
Math.max.apply(Math, $.map(array, function (el) { return el.length }));
Run Code Online (Sandbox Code Playgroud)
工作示例:http://jsfiddle.net/5SDBx/
你可以在没有jQuery的情况下在更新的浏览器(或者甚至是具有兼容性实现的旧浏览器Array.prototype.map
)中实现它:
Math.max.apply(Math, array.map(function (el) { return el.length }));
Run Code Online (Sandbox Code Playgroud)
一个老问题的新答案:在 ES6 中,你可以做得更短:
Math.max(...array.map(el => el.length));
Run Code Online (Sandbox Code Playgroud)
一种(可能是垃圾)方式,不使用Jquery:
var myarray = ['a','abcde','ab'];
var maxlen = 0;
for (i=0; i<myarray.length; i++) {
if (myarray[i].length>maxlen) {
maxlen = myarray[i].length;
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,有一个非常有用的功能。 数组归约
['a', 'abcde', 'ab'].reduce((r,s) => r.length > s.length ? r : s, 0);
Run Code Online (Sandbox Code Playgroud)
您可以使用 jQueryeach()
进行更好的迭代。
var maxLength = 0;
$.each(array, function(i, item) {
maxLength = Math.max(maxLength, item.length);
});
Run Code Online (Sandbox Code Playgroud)
或者普通的 JavaScript...
var maxLength = 0;
for (var i = 0, length = array.length; i < length; i++) {
maxLength = Math.max(maxLength, array[i].length);
};
Run Code Online (Sandbox Code Playgroud)