How to format this object to an array of objects
const failed = {
"4579043642": "Lodge with set number '4579043642' exists!",
"4579043641": "Lodge with set number '4579043641' exists!",
"4579043640": "Lodge with set number '4579043640' exists!",
}
to this expected output
[
{
"fieldName": "4579043642",
"message": "set number '4579043642' exists!"
},
{
"fieldName": "4579043641",
"message": "set number '4579043641' exists!"
},
{
"fieldName": "4579043640",
"message": "set number '4579043640' exists!"
}
]
data() {
return {
formattedList: [],
};
},
I have tried converting using this format;
uploadFeedbackReject: {
handler: function(newFeed) {
if (failed) {
this.formattedList = [response.failed];
}
},
immediate: true,
deep: true,
},
How to format this object to an array of objects
const failed = {
"4579043642": "Lodge with set number '4579043642' exists!",
"4579043641": "Lodge with set number '4579043641' exists!",
"4579043640": "Lodge with set number '4579043640' exists!",
}
to this expected output
[
{
"fieldName": "4579043642",
"message": "set number '4579043642' exists!"
},
{
"fieldName": "4579043641",
"message": "set number '4579043641' exists!"
},
{
"fieldName": "4579043640",
"message": "set number '4579043640' exists!"
}
]
data() {
return {
formattedList: [],
};
},
I have tried converting using this format;
uploadFeedbackReject: {
handler: function(newFeed) {
if (failed) {
this.formattedList = [response.failed];
}
},
immediate: true,
deep: true,
},
I need help.
Thanks.
Share Improve this question edited Sep 4, 2020 at 15:11 Boussadjra Brahim 1 asked Sep 4, 2020 at 14:58 EmmathemEmmathem 1031 gold badge2 silver badges10 bronze badges 1-
for...in...
,for...of...
,Object.keys()
+Array.prototype.map()
,Object.entries()
+Array.prototype.map()
, ... – Andreas Commented Sep 4, 2020 at 15:00
3 Answers
Reset to default 7This works well
const failed = {
4579043642: "Lodge with set number '4579043642' exists!",
4579043641: "Lodge with set number '4579043641' exists!",
4579043640: "Lodge with set number '4579043640' exists!",
};
const arrayFailed = Object.entries(failed).map((arr) => ({
fieldName: arr[0],
message: arr[1],
}));
console.log(arrayFailed);
loop through the object fields and push an object with current property as fieldname and the value as message property :
const formerList = {
"4579043642": "Lodge with set number '4579043642' exists!",
"4579043641": "Lodge with set number '4579043641' exists!",
"4579043640": "Lodge with set number '4579043640' exists!",
}
let a = []
for (f in formerList) {
a.push({
fieldName: f,
message: formerList[f]
})
}
console.log(a)
or map the object field :
const formerList = {
"4579043642": "Lodge with set number '4579043642' exists!",
"4579043641": "Lodge with set number '4579043641' exists!",
"4579043640": "Lodge with set number '4579043640' exists!",
}
let a = []
a = Object.keys(formerList).map((field) => {
return {
fieldName: field,
message: formerList[field]
}
})
console.log(a)
You could loop through the object with Object.keys() and take the value and name, push into an object, then push into the array.
let obj = {
alice: "asdf",
bob: 3,
charles: 98.67
}
let arr = [];
for(let i=0; i<Object.keys(obj).length; i++){
// Get the name and value of the old object
let name = Object.keys(obj)[i];
let value = obj[name];
// Create the new object
let newObj = {
fieldName: name,
message: value
}
// Push the new object into the array of objects
arr.push(newObj);
}