javascript - 使用 lodash 对数组进行均匀分块

标签 javascript arrays lodash

我得到了 countries.json,我正在按照规范分块显示在 4 列中。

我正在寻找一种解决方案,其中数组元素均匀分布到所有四个数组。

示例 JSFIDDLE https://jsfiddle.net/5tkjLs7b/

如果我从 json 数据中删除一个国家,我最终会得到 6 个数组。但预期只有 4 个数组。

此外,数据应该均匀分布。

Example : I am getting 63 items*4 arrays + 3 items*1 array for full country.json.

var countries = [ 
  {"name": "Afghanistan", "code": "AF"}, 
  {"name": "Åland Islands", "code": "AX"}, 
  {"name": "Albania", "code": "AL"}, 
  {"name": "Algeria", "code": "DZ"}, 
  {"name": "American Samoa", "code": "AS"}, 
  {"name": "AndorrA", "code": "AD"}, 
  {"name": "Angola", "code": "AO"}, 
  {"name": "Anguilla", "code": "AI"}, 
  {"name": "Antarctica", "code": "AQ"}, 
  {"name": "Antigua and Barbuda", "code": "AG"}, 
  {"name": "Argentina", "code": "AR"}, 
  {"name": "Armenia", "code": "AM"}];

  chunkedCountries = _.chunk(countries, countries.length/4)
  console.log(chunkedCountries);

最佳答案

您可以使用 for 循环和 slice() 来获得所需的结果。

var countries = [ 
  {"name": "Afghanistan", "code": "AF"}, 
  {"name": "Åland Islands", "code": "AX"}, 
  {"name": "Albania", "code": "AL"}, 
  {"name": "Algeria", "code": "DZ"}, 
  {"name": "American Samoa", "code": "AS"}, 
  {"name": "AndorrA", "code": "AD"}, 
  {"name": "Angola", "code": "AO"}, 
  {"name": "Anguilla", "code": "AI"}, 
  {"name": "Antarctica", "code": "AQ"}, 
  {"name": "Antigua and Barbuda", "code": "AG"}, 
  {"name": "Argentina", "code": "AR"}, 
  {"name": "Armenia", "code": "AM"}];


var c = countries.length / 4;
var result = [];

for(var i = 0; i < countries.length; i+=c) {
  result.push(countries.slice(i, i+c));
}

console.log(result)

关于javascript - 使用 lodash 对数组进行均匀分块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39764126/

相关文章:

javascript - 当我使用 Nightmare 时,在页面之间移动并进行抓取

arrays - 如何将 bash 脚本数组中的值递增 1?

arrays - 从数组创建字符串的函数 (Mathematica)

javascript - ui-使用相同的数据源滚动两个表并同步滚动两个表

javascript - 如何再次获取表单中的特定行数据进行编辑

php - YII2平面阵列

javascript - 洛达什 |搜索对象的键

javascript - lodash _.partition 方法解释

javascript - 使用 JavaScript 对单个数组的多个属性进行分组

javascript - Blanket.js 不适用于 qunit