javascript - 根据提供的长度将重复对象创建到数组中
问题描述
我想根据提供的长度将重复值插入到数组中,如下所示:
var a = [{displayName: 'bar'}, {displayName:'google'}, {displayName:'mod'}];;
var dataTypesLength= 4;
输出应该是这样的:
var a = [{displayName: 'bar'},{displayName: 'bar'},{displayName: 'bar'},{displayName: 'bar'}, {displayName:'google'},{displayName:'google'},{displayName:'google'},{displayName:'google'}, {displayName:'mod'}, {displayName:'mod'}, {displayName:'mod'}, {displayName:'mod'}];
我试过这个:
a = a.flatMap( word => Array.from({ dataTypesLength}).fill( word ));
但我收到打字稿错误说:Argument of type '{ dataTypesLength: any; }' is not assignable to parameter of type 'ArrayLike<{}>'.
Object literal may only specify known properties, and 'dataTypesLength' does not exist in type 'ArrayLike<{}>'
解决方案
只需循环对象数组并用于fill
获取结果。
var a = [{displayName: 'bar'}, {displayName:'google'}, {displayName:'mod'}];
var dataTypesLength= 4;
var arr=[];
function fillArray(value, len) {
return Array(len).fill(value);
}
for (var i=0; i<a.length; i++){
var b = fillArray(a[i],dataTypesLength);
arr.push(...b);
}
console.log(arr);
推荐阅读
- javascript - JavaScript 倒数计时器从零开始计数
- json - JSON 到 CSV - 深入 4 级
- svg - 当您更改指针事件时,Svg texpath 在 Firefox 中消失
- c# - C# - 使用 foreach 和 if 语句循环遍历 DataGridView 行 - 缺少最后一个条目
- ruby - Ruby:如何在不使用 ActiveSupport 的情况下对字符串进行 dasherize
- function - MS Word“和”功能
- javascript - 在javascript中按值过滤对象数组
- javascript - 显示未定义的 Django ajax 的外键
- sql - 为什么 postgresql case 语句的结果在 where 子句中不起作用
- windows - Xbox UWP 内存使用限制