为了账号安全,请及时绑定邮箱和手机立即绑定

如何将数组键设置为javascript/node js中的索引

如何将数组键设置为javascript/node js中的索引

子衿沉夜 2021-06-18 18:06:12
我有一个像这样的对象数组:var kvArray = [    {        number: '123',       duration: '00:00:00'    },   {       number: '324',      duration: '00:00:00'    }]我想从上面的数组生成一个新数组,以便number键成为索引。这是我试过的var kvArray = [   {        number: '123',       duration: '00:00:00'    },   {        number: '324',       duration: '00:00:00'    }]var reformattedArray = kvArray.map(obj =>{    var rObj = {};   rObj[obj.number] = obj.duration;   return rObj;});console.log(reformattedArray)上面的输出在控制台中看起来像这样,以 0 和 1 作为索引:相反,我希望输出数组是这样的:123: {"00:00:00"} 324: {"00:00:00"}这样,而不是 0 , 1 作为索引我有 123 和 324 作为索引。因此,如果在我的代码中写入 test_array[123] ,我应该能够在输出中获得 00:00:00 。是否有可能实现我在这里尝试做的事情?建议如何做到这一点的更好方法我该怎么做呢?
查看完整描述

3 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

您可以使用array#mapwithObject.assign()创建所需的输出。


const data = [ { number: '123', duration: '00:00:00' }, { number: '324', duration: '00:00:00' } ],

      result = Object.assign(...data.map(({number, duration}) => ({[number]: duration})));

      

console.log(result);


查看完整回答
反对 回复 2021-06-24
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

如果number数组中的值是唯一的,您可以使用.reduce()创建如下所示的地图对象:


const data = [

  { number: '123', duration: '00:00:00' },

  { number: '324', duration: '00:00:00' }

];      

    

const map = data.reduce((r, { number:k, duration:v }) => (r[k] = v, r), {});


console.log(map);


查看完整回答
反对 回复 2021-06-24
?
炎炎设计

TA贡献1808条经验 获得超4个赞

reformattedArray =[]

tempHash = kvArray.reduce(function(i,j){

    return $.extend(i,j)

})

for(i in tempHash) {

    reformattedArray[i] = tempHash[i]

}


查看完整回答
反对 回复 2021-06-24
  • 3 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信