今天在看数据结构的时候看到一个对二维数组 行与列进行取平均值的操作,突然发现一个有意思的问题,那就是当一个不规则的二维数组,列要取平均值时那么我们怎么操作呢? 下面将我个人的思考方式,下面是我个人的实现方式,如有雷同纯属巧合,若有更好的解题思路,我也会积极学习
coding
对规范的二维数组行与列取平均值的操作代码如下:
/**
* @name: getRowMean
* @abstract: 二维数组 取行的平均值
* @param {type}
* @return: void
*/
const getRowMean = () => {
const twod = [
[
55,66,77
],
[
56, 67, 89
],
[
57, 58, 59
]
]
for(let i = 0; i < twod.length; i++) {
let meanNums = 0;
let len = 0;
for(let row = 0; row < twod[i].length; row++) {
len+=1;
meanNums+=twod[i][row];
}
console.log('行总值:' + meanNums)
console.log('行平均值:' + meanNums/len)
}
}
/**
* @name: getColMean
* @abstract: 二维数组 获取列平均值
* @param {type}
* @return: void
*/
const getColMean = () => {
const twod = [
[
55,66,77
],
[
56, 67, 88
],
[
561, 672, 883,888
]
]
for(let col = 0; col < twod.length; col++) {
let meanMUn = 0;
for(let row = 0; row < twod[col].length; ++row) {
meanMUn += twod[row][col];
}
console.log(meanMUn/twod[col].length) // 列的平均值
}
}
关于上面的规范二维数组,行与列取平均值的操作我就不再叙述了,很简单
下面大家请看代码吧!!! 下班儿了跑了。
/**
* @name: changeRowToCol
* @abstract: 不规范二维数组 横纵置换
* @param {type}
* @return: void
*/
const changeRowToCol = () => {
const twod = [
[
1,2,
],
[
4, 5, 6
],
]
let list = []
/**
* @abstract: map 实现
*/
// twod.map((item, key) => {
// item.map((itemT, keyT) => {
// if (list[keyT] === undefined) {
// list[keyT] = [];
// }
// list[keyT].push(itemT)
// })
// })
/**
* @abstract: for 实现
*/
for(let col = 0; col < twod.length; ++col) {
for(let row = 0; row < twod[col].length; ++row) {
!list[row] ? list[row] = [] : '';
list[row].push(twod[col][row])
}
}
console.log(list)
}
相信大家也能看懂,晚上更新对刚入门javascript的同学进行思路讲解。。。