如何在同一个数组中使用limit和fill()?

问题描述 投票:1回答:2

我会同时使用限制和填充相同的数组

var array = new Array(4).fill({});
var limit = 4; 

如果有一些动态记录,它可能会有所不同,但我只需要显示4条记录例如:eg-1 records = 20它应该只显示数组输出中的前8个记录

[{record 1},{record 2},{record 3},{record 4}]

例如-2:记录= 2;它应该显示那些2,其余6个索引应该填充{}输出

[{record 1},{record 2},{},{}]

那怎么能实现这个呢?

javascript arrays
2个回答
1
投票

您可以使用limit检查生成的数组的长度,如果它更小,则使用Array.concat()将新数组添加到生成的数组中。使用Array.from()生成数组。

var obj = [1,2,3,4,5,6],
    limit = 4,
    index = 4,
    arr = obj.slice(index, index+limit),
    newArr = arr.length < limit ? arr.concat(Array.from({length: limit - arr.length }, _ => ({}))) : arr;
console.log(newArr);

1
投票

你可以尝试这个。

function limitArr(arr, limit) {
let newArr = arr.map((item, index, key) => {
    if (limit >= index) {
        return item;
    } else {
        return {};
    }
});
return newArr;

}

© www.soinside.com 2019 - 2024. All rights reserved.