在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ 如何求一個(gè)不規(guī)則的二維數(shù)組的最大值

如何求一個(gè)不規(guī)則的二維數(shù)組的最大值

給定一個(gè)數(shù)組,例如:

var arr = [
    ['1','15','56'],
    ['1','15','56'],
    ['3','-','56'],
    ['1','78','-'],
    ['1','-','56'],
]

如圖所示不規(guī)則的二維數(shù)組求其最大值,有什么優(yōu)雅點(diǎn)的方法嗎?

回答
編輯回答
傻叼

es6很簡(jiǎn)單,如果二維數(shù)組是純數(shù)字的話這樣

const max = Math.max(...[].concat(...arr));
console.log(max)

不過我看你數(shù)組中包含-這樣的字符,就要先過濾一遍

const max = Math.max(...[].concat(...arr.map(_arr => _arr.map(v => isNaN(v) ? 0 : v))));
console.log(max)

es5就乖乖循環(huán)遍歷吧,怎么寫都是丑的

var max = 0;
arr.forEach(function (_arr) {
  _arr.forEach(function (v) {
    if (!isNaN(v) && v > max) max = v
  })
});
console.log(max)
2017年11月14日 12:23
編輯回答
兮顏
Math.max.apply(null, arr.map(function(el) {
    return Math.max.apply(null, el.filter(function(item) {return +item}))
}))

題主試試

2017年12月19日 16:53
編輯回答
青瓷
var arr = [
    ['1','15','56'],
    ['1','15','56'],
    ['3','-','56'],
    ['1','78','-'],
    ['1','-','56'],
];

function dparseInt(i){
  var j = parseInt(i);
  if( isNaN(j) ) return 0;
  return j;
var arr = [
    ['1','15','56'],
    ['1','15','56'],
    ['3','-','56'],
    ['1','78','-'],
    ['1','-','56'],
];

function dparseInt(i){
  var j = parseInt(i);
  if( isNaN(j) ) return 0;
  return j;
}

//數(shù)組全是字符先轉(zhuǎn)為數(shù)字
var arr1 = arr.map(item=>{
  return item.map(i => dparseInt(i));
});

console.log(arr1);

//兩個(gè)Math.max 搞定
var result = Math.max(...arr1.map(v=>Math.max(...v)))
console.log(result)
2017年11月2日 12:33