首页 > 解决方案 > 将数组拆分为多个包含字符串的数组

问题描述

我想取一个任意长度的数组(在这个例子中长度为 10):

var fruits = ["Banana", "Orange", "Apple", "Mango", "Strawberry", "Lime", "Kiwi", "Melon", "Pineapple", "Date"];

从这个数组中,我想以 5 为增量获取元素,将每个增量转换为一个字符串,然后将每个字符串作为嵌套数组存储在一个新数组中。每个元素都需要用“%”分隔。

输出如下:

newArray = [[ 'Banana%Orange%Apple%Mango%Strawberry' ],[ 'Lime%Kiwi%Melon%Pineapple%Date' ]]

要转换为我正在使用的字符串:

var finalArray = Array()
    var x = ""
        for(i = 0; i < fruits.length; i++){
            if(i==fruits.length-1){
                x = x + fruits[i].toString()
            }
            else {
                x = x + fruits[i].toString()+'%'
            }       
        } finalArray.push([x])

哪个输出:

[['Banana%Orange%Apple%Mango%Strawberry%Lime%Kiwi%Melon%Pineapple%Date']]

我尝试了许多 for & forEach 循环、if/else 语句等,以便在应用字符串转换代码之前将原始数组拆分为 5 的增量,但没有成功。

任何有关如何实现的帮助或想法将不胜感激。谢谢。

编辑:谢谢大家,这回答了我的问题:)

标签: javascriptnode.jsarrays

解决方案


您可以使用Array#splice并裁剪数组,直到它为空:

var fruits = ["Banana", "Orange", "Apple", "Mango", "Strawberry", "Lime", "Kiwi", "Melon", "Pineapple", "Date"];

var result = [];

while (fruits.length) {
  result.push([fruits.splice(0, 5).join('%')]);
}

console.log(result);


推荐阅读