【AiWork脚本开发基础】JavaScript中合并多个数组

需求

将以下两个数组合并

/**
* @author 飞云
* @wechat imfeiyun
* @wiki http://aiwork.wiki
* @link http://www.feiyunjs.com
*/
let aList = [
    {
        remarks: "偏移点击:去签到",
        mark: [
            {
                text: '新人签到领金币',
            },
        ],
    },
]

let bList = [
    {
        remarks: "浮窗:看广告-签到",
        mark: [
            {
                text: '看视频签到 +100金币',
            },
        ],
    },
]

实现方法

const arr = [aList, bList];   // 动态数组
const flatArr = customFlat(arr);
console.log(JSON.stringify(flatArr));

实现

要想将一个或者一个以上的数组,合并到一个数组里,可使用ES6的flat方法。

但是AiWork只支持ES5的全部特性和ES6的少量特性,并不支持flat方法。

需要我们自己实现一个

function customFlat(arr) {
    let result = [];

    // 遍历每个元素
    arr.forEach(item => {
        // 如果元素是数组,递归调用flat;否则,直接加入结果数组
        if (Array.isArray(item)) {
            result = result.concat(customFlat(item)); // 递归扁平化
        } else {
            result.push(item); // 直接添加非数组元素
        }
    });

    return result;
}

代码解释

  • customFlat:这个方法会递归地检查数组中的每个元素。如果遇到一个数组,它会递归地展开数组;否则,它会将该元素直接添加到结果数组中。

这样,你就能避免使用原生的 flat() 方法,确保即使在不支持该方法的环境中也能正常工作

AiWork简介

AIWork是一款安卓和IOS手机的自动化测试开发引擎,采用免root技术,自研IDE代码编辑器,自研图色引擎2.0,自研agent adb代理模式,自研hid硬件自动化,脚本代码采用javascript脚本代码(rhino引擎),提供了众多的工具,方便自动生成js代码。

AiWork开发文档

在官方文档的基础上,进行重新排版和优化。
一个优雅的文档,对于开发体验的提升,是效果显著的。
永久域名:aiwork.wiki

1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【AiWork脚本开发基础】JavaScript中合并多个数组

企业级大数据智能营销管理系统

了解详情