[引用类型][Array]javascript数组降维

本文详细介绍了JavaScript中数组降维的方法,包括二维及多维数组的降维操作,提供了实用的代码示例,并总结了Array类型的主要方法及其功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript数组降维

二维数组降维

Q: [[1,2,3],[4,5,6]]这样的二维数组降维成一维数组

// 遍历数组 使用concat连接
function reduceDimension(arr) {
    let arr2 = []; 
    arr.forEach((item) => {
        arr2 = arr2.concat(item);
    });
    return arr2;
}
// 使用apply传入参数数组,仅一行代码
function reduceDimension2(arr) {
    return Array.prototype.concat.apply([], arr);
    // [].concat(arr[0], arr[1], ...);
}
const arr = [[1, 2, 3],[{},'i am string']];
console.log(reduceDimension(arr), reduceDimension2(arr));

多维数组降维

var arr = [2, 3, [2, 2], [3, 'f', ['w', 3]], { "name": 'Tom' }];
function deepFlatten(arr) {
    var res = [];
    if (Array.isArray(arr)) {
        arr.forEach((item) => {
            res = res.concat(deepFlatten(item));
        });
    } else {
        res = res.concat(arr);
    }
    return res;
}
console.log(deepFlatten(arr));// [2, 3, 2, 2, 3, "f", "w", 3, {name: "Tom"}]

Array类型方法总结

  • Array方法:

    方法类别描述参数返回值
    filter一层深拷贝创建一个新数组,其包含通过所提供函数实现的测试的所有元素
    concat一层深拷贝合并两个或多个数组 concat() 方法把合并的数组元素浅拷贝到一个新数组对象。且原始数组不会被修改。多个数组参数合并后的数组
    pop改变原数组 删除最后一个元素数组的最后一个元素
    push改变原数组 增加一个元素或更多元素添加到数组的一个或多个元素新的长度
    reverse改变原数组
    shift改变原数组 删除第一个元素数组的第一个元素
    unshift改变原数组 从头插入一个或多个元素新的长度
    slice深拷贝 just一层slice() 方法返回一个从开始到结束(*不包括结束*)选择的数组的一部分浅拷贝到一个新数组对象。且原始数组不会被修改。start,end默认0,length拷贝的新数组
    sort改变原数组sort函数
    splice改变原数组 向/从数组中添加/删除项目,然后返回被删除的项目。删除位置,删除数量,添加的新项目被删除的项目
    join把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。数组String
    toString
    toLocalString
    valueOf
 // slice是一层深拷贝
var a = [[1,2,3],4,5];
var b = a.splice();
console.log(a === b);// true
a[0][0] = 6;
console.log(a===b); // true
console.log(a[0] === b[0]); // false

JavaScript之数组降维

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值