Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

某公司 1 到 12 月份的销售额存在一个对象里面,如下:{1:222, 2:123, 5:888},请把数据处理为如下结构:[222, 123, null, null, 888, null, null, null, null, null, null, null] #2

Open
lxinr opened this issue Apr 18, 2019 · 0 comments

Comments

@lxinr
Copy link
Owner

lxinr commented Apr 18, 2019

方式1

let data = { 1:222, 2:123, 5:888 }
const arr = new Array(12).fill(null).map((item, i) => data[i + 1] || item)

方式2

let data = {1:222, 2:123, 5:888};
let arr = Array.from({length:12}).map((it,i)=> data[i+1]||null)

方式3

Object.assign(Array(13).fill(null),{1:222, 2:123, 5:888}).slice(1)

方式4

var obj = {1:222, 2:123, 5:888}
function hander(obj){
    let arr = [];
  console.time()
    for (let i = 1;i<=12;i++) {
        if(obj[i]){
            arr.push(obj[i])
        }else{
            arr.push(null)
        }
    }
    console.log(arr) // [222, 123, null, null, 888, null, null, null, null, null, null, null]
}

Array.from()是es6增加的一个方法,它可以将类数组转为真正的数组

Object.assign(target, ...sources),方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象

原题来自:第 55 题:某公司 1 到 12 月份的销售额存在一个对象里面,如下:{1:222, 2:123, 5:888},请把数据处理为如下结构:[222, 123, null, null, 888, null, null, null, null, null, null, null]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant