今天在看数据结构的时候看到一个对二维数组 行与列进行取平均值的操做,忽然发现一个有意思的问题,那就是当一个不规则的二维数组,列要取平均值时那么咱们怎么操做呢? 下面将我我的的思考方式,下面是我我的的实现方式,若有雷同纯属巧合,如有更好的解题思路,我也会积极学习
coding
javascript
/** * @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) // 列的平均值
}
}
复制代码
关于上面的规范二维数组,行与列取平均值的操做我就再也不叙述了,很简单java
/** * @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的同窗进行思路讲解。。。数组