我得到了 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/