最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Vue.js - Convert objects to Array of Objects with a key and value - Stack Overflow

programmeradmin1浏览0评论

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
Add a ment  | 

3 Answers 3

Reset to default 7

This 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);
}
发布评论

评论列表(0)

  1. 暂无评论