我正在尝试以最简单的方式将{fieldName: "value"}
之类的对象转换为{field: "fieldName", value: "value"}
之类的另一对象,而不事先知道fieldName是什么。
我已经看过How to convert string as object's field name in javascript的答案,但是尽管这可行,但它依赖于fieldName已经已知的事实。以下作品:
const key = Object.keys(searchObject)[0];
return { field: key, value: searchObject[key] }
但是它看起来笨拙,笨拙且容易出错。我想要的是
const obj = { field: [searchObject.key], ... }
但这仅在[searchObject.key]
是searchObject.key
的值的情况下起作用。
答案 0 :(得分:1)
遍历对象中的每个属性,并创建另一个具有键和值作为单独属性的属性,然后将其推入新数组并返回。
示例:
var test_data = {fieldName: "name", fieldName2: "name2"}
function convert(data){
var result = []
for(var k in data){
result.push({
field: k,
value: data[k]
})
}
return result
}
console.log(convert(test_data))
// ------ ES6 ---------- //
console.log(
Object.keys(test_data).map(a=>({field: a, value: test_data[a]}))
)