不规范的二维数组,横纵置换

433 阅读2分钟

今天在看数据结构的时候看到一个对二维数组 行与列进行取平均值的操作,突然发现一个有意思的问题,那就是当一个不规则的二维数组,列要取平均值时那么我们怎么操作呢? 下面将我个人的思考方式,下面是我个人的实现方式,如有雷同纯属巧合,若有更好的解题思路,我也会积极学习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的同学进行思路讲解。。。