gpt4 book ai didi

javascript - 使用同一索引上的多个键解析对象

转载 作者:行者123 更新时间:2023-11-29 20:59:32 24 4
gpt4 key购买 nike

我正在努力解析从输入表单字段中获取的以下对象:

const obj = { 'repeater-group[1][titel]': 'test1',
'repeater-group[1][description]': 'test1',
'repeater-group[3][titel]': 'test2',
'repeater-group[3][description]': 'test2',
'repeater-group[5][titel]': 'test3',
'repeater-group[5][description]': 'test3' }

const desc = 'undefined'
const titel = 'undefined'
let i = 0
for (const k in obj) {
const item = obj[k]

if (k === `repeater-group[${i}][titel]`) {
titel = item
}
if (k === `repeater-group[${i}][description]`) {
desc = item
}
if (titel != 'undefined' && desc != 'undefined') {
try {
console.log(titel + ", " + desc)
}
catch (error) {
console.log(error)
}
}

i += 1
}
// Currently there is no output

我想要以下输出

//Expected output
// test1, test1
// test2, test2
// test3, test3

有什么建议我的代码有什么问题吗?

有没有更短的方法来解析这个对象?

非常感谢您的回复!

最佳答案

您可以通过正则表达式匹配要使用的 key 部分:

const obj = {
'repeater-group[1][titel]': 'test1',
'repeater-group[1][description]': 'test1',
'repeater-group[3][titel]': 'test2',
'repeater-group[3][description]': 'test2',
'repeater-group[5][titel]': 'test3',
'repeater-group[5][description]': 'test3'
}

const out = {}

for (const key in obj) {
const value = obj[key]

const match = /repeater-group\[([0-9])\]\[([a-z]+)\]/.exec(key)
const index = match[1]
const property = match[2]

out[index] = {...out[index], [property]: value}
}

console.log(out)

/*
{
"1": {
"titel": "test1",
"description": "test1"
},
"3": {
"titel": "test2",
"description": "test2"
},
"5": {
"titel": "test3",
"description": "test3"
}
}
*/

Object.keys(out).forEach(i => console.log(`${out[i].titel}, ${out[i].description}`))

/*
test1, test1
test2, test2
test3, test3
*/

关于javascript - 使用同一索引上的多个键解析对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47295510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com