Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
365 views
in Technique[技术] by (71.8m points)

js数组转化问题

输入数组格式如下`{
? ? "data": {
? ? ? ? "char": [
? ? ? ? ? ? [
? ? ? ? ? ? ? ? [29,"新","心","char_1"],
? ? ? ? ? ? ? ? [29,"新","心","char_2"]
? ? ? ? ? ? ]
? ? ? ? ],
? ? ? ? "miss": [
? ? ? ? ? ? [
? ? ? ? ? ? ? ? [29,"新","心","miss_1"],
? ? ? ? ? ? ? ? [29,"新","心","miss_2"]
? ? ? ? ? ? ]? ? ? ?
? ? ? ? ],
? ? ? ? "order": [
? ? ? ? ? ? []
? ? ? ? ]
? ? }
}`
如何转换为下面这个形式`{
? ? "event_list": [
? ? ? ? {
? ? ? ? ? ? "big": {
? ? ? ? ? ? ? ? "type": "char"
? ? ? ? ? ? },
? ? ? ? ? ? "small": [
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "type": "char_1",
? ? ? ? ? ? ? ? ? ? "correct": "心",
? ? ? ? ? ? ? ? ? ? "text": "新",
? ? ? ? ? ? ? ? ? ? "pos": 20
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "type": "char_2",
? ? ? ? ? ? ? ? ? ? "correct": "心",
? ? ? ? ? ? ? ? ? ? "text": "新",
? ? ? ? ? ? ? ? ? ? "pos": 10
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ]
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? "big": {
? ? ? ? ? ? ? ? "type": "miss"
? ? ? ? ? ? },
? ? ? ? ? ? "small": [
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "type": "miss_1",
? ? ? ? ? ? ? ? ? ? "correct": "心",
? ? ? ? ? ? ? ? ? ? "text": "新",
? ? ? ? ? ? ? ? ? ? "pos": 20
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "type": "miss_2",
? ? ? ? ? ? ? ? ? ? "correct": "心",
? ? ? ? ? ? ? ? ? ? "text": "新",
? ? ? ? ? ? ? ? ? ? "pos": 10
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ]
? ? ? ? }
? ? ]
}`


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

讲道理这种代码不就是花点时间就好...

const x = {
    "data": {
        "char": [
            [
                [29,"新","心","char_1"],
                [29,"新","心","char_2"]
            ]
        ],
        "miss": [
            [
                [29,"新","心","miss_1"],
                [29,"新","心","miss_2"]
            ]       
        ],
        "order": [
            []
        ]
    }
}

const r = {}
r['event_list'] = Object.keys(x.data).map(key => {
    const source = x.data[key].shift()
    if (!source || !source.length) return null
    return {
        big: {type: key}, small: source.map(subElt => {
            const [pos, text, correct, type] = subElt
            return {type, correct, text, pos}
        })
    }
}).filter(item => item)

console.log(JSON.stringify(r))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...