我想合并一些具有相同键和值的值对象,在这种情况下,from flask import Flask,jsonify
app = Flask(__name__)
@app.route('/index')
data={
'name':'python',
'age':'18'
}
return jsonify(data)
if __name__=="__main__":
app.run(port=5555,debug=True)
是重复的,但具有不同的值。
json数据:
"field_template_id": 2
我希望是这样,仍然还有{
"id": "c2dec94f",
"data": [
{
"field_template_id": 1,
"value": "111"
},
{
"field_template_id": 2,
"value": 222
},
{
"field_template_id": 2,
"value": 444
},
{
"field_template_id": 3,
"value": [
333
]
}
]
}
,但是值是array。
预期的json:
"field_template_id": 2
预先感谢
答案 0 :(得分:0)
const json = {
"id": "c2dec94f",
"data": [
{
"field_template_id": 1,
"value": "111"
},
{
"field_template_id": 2,
"value": 222
},
{
"field_template_id": 3,
"value": [
333
]
},
{
"field_template_id": 2,
"value": 444
}
]
}
const data = json.data
let obj = {}
let arr = []
data.forEach(item => {
if (obj[item.field_template_id]) {
arr.some((val, key) => {
const newItem = arr[key]
if (val.field_template_id === item.field_template_id) {
if (Array.isArray(newItem.value) && Array.isArray(item.value)) {
newItem.value = newItem.value.concat(item.value)
} else if (Array.isArray(newItem.value)) {
newItem.value.push(item.value)
} else if (Array.isArray(item.value)) {
item.value.unshift(newItem.value)
} else {
const result = []
result.push(newItem.value)
result.push(item.value)
newItem.value = result
}
return true
} else {
return false
}
})
} else {
obj[item.field_template_id] = true
arr.push(item)
}
})
const result = {
id: json.id,
data: arr
}
console.log(result)