Javascript:对象键值对

Javascript: object key-value pairs

我正在尝试获得如下输出:-

[{"option_id":1,"name":"small"},{"option_id":1,"name":"medium"}]

下面是我的代码片段,如您所见,console.log 只显示单个对象而不是两个。这是为什么? :/

const myObject = {
  "'\'": "small",
  "'\'": "medium"
};

var item = [];

Object.entries(myObject).forEach(([k, v]) => {
  item.push({
    name: v,
    option_id: k
  });

  console.log(item);
})

一个选项是创建一个 JSON 格式的字符串,然后使用 JSON 库处理该字符串。

const myObject = {
  1: "small",
  1: "medium"
};

var item = [];

Object.entries(myObject).forEach(([k, v]) => {
  item.push('{"name":"' + v + '", "option_id":"' + k + '"}');
})
console.log(JSON.stringify(JSON.parse('[' + item.join(",") + ']')));

您使用的方法只是覆盖了您创建的重复键...为防止出现这种情况,请不要使用对象键!你可以依靠数组传递你想要的数据

查看示例 =>

const myObject = {
  // number : [name , option]
  0: ["small", 1],
  1: ["medium", 1]
};

let item = [];

Object.entries(myObject).forEach(obj => {
  item.push({
    name: obj[1][0],
    option_id: obj[1][1]
  });
})

console.log(item);

使用数组方法的最佳方式

let  myObject = [
  ["small", 1],
  ["medium", 1]
];

myObject = myObject.map(obj => {
  return {
    name: obj[0], option_id: obj[1]};
});

console.log(myObject);