js實現陣列分組

2021-07-11 03:44:12 字數 2892 閱讀 5709

有這樣乙個陣列:

[『法國』,』澳大利亞』,』智利』,』紐西蘭』,』西班牙』,』加拿大』,』阿根廷』,』美國』,』0』,』國產』,』波多黎各』,』英國』,』比利時』,』德國』,』義大利』,』義大利』,]

現在希望讓每3個分成乙個陣列,像這樣:

[[『法國』,』澳大利亞』,』智利』],[『紐西蘭』,』西班牙』,』加拿大』],[『阿根廷』,』美國』,』0』],[『國產』,』波多黎各』,』英國』],[『比利時』,』德國』,』義大利』],[『義大利』],]

第一種辦法:

var data = ['法國','澳大利亞','智利','紐西蘭','西班牙','加拿大','阿根廷','美國','0','國產','波多黎各','英國','比利時','德國','義大利','義大利',];

var result = ;

for(var i=0,len=data.

length;i

i+=3)

第二種辦法:

var countries= ['法國','澳大利亞','智利','紐西蘭','西班牙','加拿大','阿根廷','美國','0','國產','波多黎各','英國','比利時','德國','義大利','義大利'];

var chunkcountries = _.chunk(countries,3);

使用lodash的chunk方法,如果不想使用整個類庫,可以單獨引入這個方法

import chunk from "lodash/chunk";

var chunk =require("lodash/chunk");

如果你只想用引入的chunk,用這個:

第三種辦法:

var arr = ['法國','澳大利亞','智利','紐西蘭','西班牙','加拿大','阿根廷','美國','0','國產','波多黎各','英國','比利時','德國','義大利','義大利'],

newarr = ,

b;arr.foreach(function

(item, index, array)

newarr[a].push(item);

});

第四種辦法:

function

group

(array, subgrouplength)

return newarray;

}var countries = ['法國','澳大利亞','智利','紐西蘭','西班牙','加拿大','阿根廷','美國','0','國產','波多黎各','英國','比利時','德國','義大利','義大利',];

var groupedcountries = group(countries, 3);

第五種辦法:

var a = ['法國','澳大利亞','智利','紐西蘭','西班牙','加拿大','阿根廷','美國','0','國產','波多黎各','英國','比利時','德國','義大利','義大利'];

var b = ;

var result = ;

var k = 0;

for(var i = 0; iif(i%3 == 0) else

}result[k] = b;

k++;

}}console.log(result);

第六種辦法:

var chunk = function

(arr, num)

ret[ret.length - 1].push(item);

});console.log(ret);

return ret;

};// run

var source = ['法國','澳大利亞','智利','紐西蘭','西班牙','加拿大','阿根廷','美國','0','國產','波多黎各','英國','比利時','德國','義大利','義大利'];

chunk(source, 3);

第七種辦法:

var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];

function formatarray(arr)

}return result;

}formatarray(arr); // [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ['j']]

2023年4月19日 新增 陣列合併方法:

var

list = [

['11','22','33'],

['aa','bb'],

]//最終的結果是

varlist = [

['112233'],

['aabb']

]//方法一

varlist=list.map(function

(v) )

//方法二

var res =

for(i in list)

//方法三

var result = ;

for(var i = 0, k = list.length; i < k; i++)

頭像

暱稱鋒雲戰錦

小俞hiyohoo

外籍傑克

明就interjc

fotuo

陣列分組問題

這個問題是這個樣子滴 有乙個無序 元素個數為n n為偶數 的正整數陣列arr,要求 如何能把這個陣列分割為元素個數為n 2的兩個子陣列,並使兩個子陣列的的和最接近。我的思路是 1 把陣列拆成2個子陣列a和b 2 用a中的每個元素與b中的每個元素比較,陣列值之和的絕對值小於原來的值就交換 其實並不難,...

陣列(list)分組 分段

對乙個list進行分組,要求控制每組中的元素個數 1.使用切片分組 lst 1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1 lst可為空,最後返回值也為空 num 3 定義每組包含的元素個數 for i in range 0,len lst num print lst i i n...

PHP陣列分組操作

近期在開發過程中,遇到資料渲染 需要對指定的幾列進行重複資料合併單元格,想了一些方案,最終還是選擇在後台進行資料處理進行渲染 下面貼出實現 首先需要做乙個多維陣列根據指定索引字段進行分組的乙個演算法 public static function array val chunk array ret a...