当前位置: 首页 > 知识库问答 >
问题:

javascript - js 对象数组,长度不足10位,怎么补到10位?

黄正浩
2024-01-22

js 对象数组,长度不足10位,怎么补到10位? 有什么好的方法,不足10位的长度,填补空对象,现在想到通过长度10-arr.length然后循环push,有什么其它好的方法,可以快速补全吗?
arr 里面的对象

const obj ={    id:'',    name:''}

共有5个答案

卢黎明
2024-01-22
    Object.defineProperty(Array.prototype, 'pad', {        value: function (value, length) {            const len = this.length;            if (len >= length) return this;            return this.concat(new Array(length - len).fill(value));        },        enumerable: false,        writable: false,        configurable: false    })    console.log('[].pad(0, 5)', [1].pad(0, 5))
焦兴为
2024-01-22

楼上的大佬们,fill有第二和第三个参数的呀

const arr = [{ id: 1, name: 'item1' }, { id: 2, name: 'item2' }]const originalLength = arr.length // 原始长度arr.length = 10arr.fill({}, originalLength)// arr.fill({}, originalLength, arr.length)console.log(arr) // [ { id: 1, name: 'item1' }, { id: 2, name: 'item2' }, {}, {}, {}, {}, {}, {}, {}, {} ]
卫甫
2024-01-22

补充几个思路

  1. lodashmerge, 和默认数据做一个合并

    const result = _.merge(  new Array(10).fill(0).map(() => ({ id:'', name:''})),  [{ id: '11', name: '22' }])
  2. reduce

    const result = new Array(10).fill(0).reduce((ret, item, index) => {  ret[index] ??= { id: '', name: '' }  return ret}, [{ id: '11', name: '22' }])
夏侯枫
2024-01-22

思路差不多就是这样,只是可以通过一些方法简化一下

const arr = [  { id: '1', name: 'AA' },  { id: '2', name: 'BB' },];const fillArr = Array.from({ length: 10 - arr.length }, () => ({ id: '', name: '' }));const result = arr.concat(filledArray);console.log(result)
宇文兴言
2024-01-22

直接操作 数组的 .length 属性是一种方式,当然也可以操作完之后再通过 Array.from 做其他的处理。

var arr = [{ id:1, name: 'item1' }, { id:2, name: 'item2' }]arr.length = 10// 数组arr的长度就是 10了// 也可以通过 `Array.from` 来创建一个新的数组结果var arr2 = Array.from({ ...arr, length: 10}, (d = {id:'', name:''}) => ({ ...d }))
 类似资料:
  • 怎么让arr1占3个,arr2占5个,剩下的都给arr3

  • 想知道 js 字符串怎么转成数组对象,上面的转成下面的

  • 主要内容:1.对象如何定位的,2.对象怎么分配1.对象如何定位的 1.句柄方式 2.直接指针方式 一个直接寻址:访问速度快 一个是间接寻址:垃圾回收起来比较稳定 第二个比如如果是G1垃圾回收器的话,垃圾回收会进行垃圾的复制。会将垃圾移到另一个位置。如果用直接指针的方式的话就会发现T来回发生变化,效率低,所以句柄方式,GC回收比较稳定 句柄方式: 第一个指针是真正new出来的对象 第二个指针是类型数据指针 2.对象怎么分配 对象首先会尝试在栈上

  • 我正在设置合并排序来对数组进行排序。目标是对任意长度的数组进行排序。 我试过查看mergesort函数,但没有发现任何问题。排序适用于某些数组长度,无论是奇数还是偶数,但对于数组长度,例如长度为10,我得到了一个上界异常。

  • 问题内容: 我有这个专栏 但是当我插入类似的东西时,我得到了 应该在那里允许有10位数字,对不对? 如何正确执行此操作? 问题答案: Int具有最大值范围: 因此,由于溢出,您将获得最大值。使用bigint代替,它有8个字节,您会没事的。 http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html#integer- types

  • 问题内容: 我有一个JavaScript对象,是否有内置的或公认的最佳实践方法来获取此对象的长度? 问题答案: 最可靠的答案(即,在引起最少的错误的同时,捕捉您要尝试做的事情的意图)将是: JavaScript中有一种约定,您无需向Object.prototype添加任何内容,因为它可能会破坏各种库中的枚举。不过,向Object添加方法通常是安全的。 更新,以及ES5及更高版本的[广泛部署。 对于