21、对象转数组

let obj = { 1:2323, 4:3492, 8:2673 } 要求得到[2323, null, null, 3492, null, null, null, 2673, null, null, null, null]

  • 方法一:直接new Array().fill(null)然后map使用index对比
let obj = {
  1:2323,
  4:3492,
  8:2673
}

let arr = new Array(12).fill(null).map((item,index)=>{
  return obj[index+1]?obj[index+1]:item
})
  • 方法二:利用obj.length长度,然后Array.from
let obj = {
  1:2323,
  4:3492,
  8:2673
}
obj.length = 13    //因为要截取后面的12个
//Array.from(obj) 后的值[undefined, 2323, undefined, undefined, 3492, undefined, undefined, undefined, 2673, undefined, undefined, undefined,undefined]
Array.from(obj).slice(1).map(item=>{        //slice是动某个索引值开始
  return item?item:null
})
  • 方法三:利用object.keys
let obj = {
  1:2323,
  4:3492,
  8:2673
}
//Object.keys,是遍历对象中的所有key并且以数组的方式返回

let arr = new Array(12).fill(null)
Object.keys(obj).forEach(item=>{
  arr[parseInt(item)-1] = obj[item]
})
基本的数组相关的方法

results matching ""

    No results matching ""