Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在同一数组中使用limit和fill()?_Javascript_Arrays - Fatal编程技术网

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

Javascript 如何在同一数组中使用limit和fill()?,javascript,arrays,Javascript,Arrays,我希望在同一个数组中同时使用限制和填充 var array = new Array(4).fill({}); var limit = 4; 如果有一些动态记录,它可能会有所不同,但我只需要4条记录显示 例如: eg-1 记录=20 它应该只显示数组中的前8个记录 输出 eg-2: 记录=2; 它应该显示这2个,其余6个索引应该用{}填充 输出 那么我该如何实现这一点呢?您可以使用限制检查生成的数组的长度,如果长度小于此限制,请使用array.concat()将新数组添加到生成的数组中。使用a

我希望在同一个数组中同时使用限制和填充

var array = new Array(4).fill({});
var limit = 4; 
如果有一些动态记录,它可能会有所不同,但我只需要4条记录显示 例如: eg-1 记录=20 它应该只显示数组中的前8个记录 输出

eg-2: 记录=2; 它应该显示这2个,其余6个索引应该用{}填充 输出


那么我该如何实现这一点呢?

您可以使用
限制检查生成的数组的长度,如果长度小于此限制,请使用
array.concat()
将新数组添加到生成的数组中。使用
array.from()
生成数组

var obj=[1,2,3,4,5,6],
限值=4,
指数=4,
arr=对象切片(索引、索引+限制),
newArr=arr.长度<极限?arr.concat(Array.from({length:limit-arr.length},=>({})):arr;
控制台日志(newArr)你可以试试这个

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

}

您可以使用
array#slice
。另外,您是否可以使用示例输入更新问题。我将使用一个
for
循环来迭代您拥有的记录(或在第4条记录处停止)。仅在完成后应用
.fill({})
method@HassanImam是的,我使用了array.slice(0,limit);所以我得到的记录数等于limit,但问题是,如果数组中的记录数少于limit,那么剩余的字段应该由
{}
填充。
[{record 1},{record 2},{},{}]
function limitArr(arr, limit) {
let newArr = arr.map((item, index, key) => {
    if (limit >= index) {
        return item;
    } else {
        return {};
    }
});
return newArr;