+1
Convert array to object key
**Input: **
{id: 0, name: "A"},
{id: 1, name: "B"},
{id: 2, name: "C"},
{id: 3, name: "D"},
{id: 4, name: "E"},
{id: 5, name: "F"},
{id: 6, name: "G"},
{id: 7, name: "H"},
] ```
**output:**
``` var object = {
1: [
{id: 0, name: "A"},
{id: 1, name: "B"},
{id: 2, name: "C"},
],
2: [
{id: 3, name: "D"},
{id: 4, name: "E"},
{id: 5, name: "F"},
],
3: [
{id: 6, name: "G"},
{id: 7, name: "H"},
]
}```
Các bác cho em hỏi javascript làm như trên thì code thế nào ạ, em xin keyword với.
Thêm một bình luận
3 CÂU TRẢ LỜI
0
keyword : chunk array.
Nếu bạn sử dụng thư viện như lodash sẽ có hàm hỗ trợ luôn là chunk(array, size_chunk)
https://lodash.com/docs/4.17.15#chunk
Không thì đối với javascript thuần chắc phải viết một vòng lặp rồi slice
các giá trị của mảng
function chunkArray(arr, size) {
var arr = [];
for(var i = 0; i < arr.length; i += size) {
arr.push(arr.slice(i, i+size));
}
return arr;
}
console.log(chunkArray(["a", "b", "c", "d","e"], 2));
Cảm ơn bạn
0
Để chuyển Object thành Array thì có thể làm như này:
Object.keys(object).map(item => object[item])
Nhưng để kết quả ra như bạn thì phải tiếp tục xử lý mảng kia, cứ 3 index thì push vào 1 mảng mới
0
php thì gọi cái này là array_chunk
js thì không có hàm sẵn, bạn dùng loop rồi đẩy vào array tạm thôi
có thể xem code ở đây https://stackoverflow.com/questions/8495687/split-array-into-chunks
sau khi xong thì dùng tiếp cái này
Object.assign({}, ['a','b','c']); // {0:"a", 1:"b", 2:"c"}
hoặc cái này
{ ...['a', 'b', 'c'] }