如何处理二维数组:合并子数组末尾4元素并移除false值?
解决方案
可以通过数组遍历结合几个基础数组方法来实现需求,代码逻辑清晰易懂,具体实现如下:
var data = [ ['apple', false, 1, false, 2, 5], ['orange',true, 2, 5, false, 2], ['pear',true, 3, 7, false, false] ]; // 遍历处理每个子数组 const processedData = data.map(subArr => { // 保留子数组的前2个元素 const prefix = subArr.slice(0, 2); // 提取后面4个元素,过滤false后转成指定格式的字符串 const mergedStr = subArr.slice(2) .filter(item => item !== false) .join(', '); // 拼接成新的子数组 return [...prefix, mergedStr]; }); console.log(processedData);
代码细节说明:
map方法:遍历原数组的每个子数组,返回全新的处理后数组,不会改动原数组(如果需要直接覆盖原数组,把const processedData = ...改成data = ...即可)。slice(0, 2):精准获取每个子数组的前2个元素,比如第一个子数组会得到['apple', false]。slice(2):获取子数组从索引2到末尾的所有元素,正好对应需求里的「最后4个元素」。filter(item => item !== false):剔除提取出的元素中的false值,只保留有效内容。join(', '):把过滤后的有效元素用,连接成字符串,比如[1,2,5]会转为"1, 2, 5"。- 扩展运算符
...:把前2个元素和处理后的字符串拼接成符合要求的新子数组。
内容的提问来源于stack exchange,提问作者Borgher
相关产品推荐
相关产品推荐

