向对象数组添加一个数组作为键值

时间:2019-06-03 11:05:05

标签: javascript

我有一个对象数组,并且有一个简单的数组,我想将一个简单的数组转换为键值,并将其元素推入对象的每个元素

const data = {

output: [
  {
    title: "\"Ради будущего своих детей\": Головкин назвал свой любимый 
     город и рассказал о семье",
    time: "10:22",
    image: "https://netstorage- 
     nur.akamaized.net/images/efcfd2c4b999
  },
  {
    title: "\"Изнасиловали, избили, шантажировали\": астанчанка стала 
     жертвой двоих мужчин",
     time: "10:08",
     image: "https://netstorage-
  },
],
href: [
  "https://www.nur.kz/1797318-radi-budusego-svoih-detej-golovkin-nazval- 
   svoj-lubimyj-gorod-i-rasskazal-o-seme.html",
  "https://www.nur.kz/1797004-iznasilovali-izbili-santazirovali- 
    astancanka-stala-zertvoj-dvoih-muzcin.html",
]}

我期望一个对象数组示例:

 output: [
{
  title: "",
  time: "",
  image: "",
  href: "",
},
{
  title: "",
  time: "",
  image: "",
  href: "",
 },
]

2 个答案:

答案 0 :(得分:3)

使用map

const data = {
    output: [
      {
        title: "\"Ради будущего своих детей\": Головкин назвал свой любимый город и рассказал о семье",
        time: "10:22",
        image: "https://netstorage- nur.akamaized.net/images/efcfd2c4b999"
      },
      {
        title: "\"Изнасиловали, избили, шантажировали\": астанчанка стала жертвой двоих мужчин",
         time: "10:08",
         image: "https://netstorage-"
      },
    ],
    href: [
      "https://www.nur.kz/1797318-radi-budusego-svoih-detej-golovkin-nazval- svoj-lubimyj-gorod-i-rasskazal-o-seme.html",
      "https://www.nur.kz/1797004-iznasilovali-izbili-santazirovali-astancanka-stala-zertvoj-dvoih-muzcin.html",
    ]
};

const {output, href}= data;

const finalOutput = output.map((obj, i) => ({...obj, href: href[i]}));

console.log(finalOutput);

使用forEach循环-

const data = {
    output: [
      {
        title: "\"Ради будущего своих детей\": Головкин назвал свой любимый город и рассказал о семье",
        time: "10:22",
        image: "https://netstorage- nur.akamaized.net/images/efcfd2c4b999"
      },
      {
        title: "\"Изнасиловали, избили, шантажировали\": астанчанка стала жертвой двоих мужчин",
         time: "10:08",
         image: "https://netstorage-"
      },
    ],
    href: [
      "https://www.nur.kz/1797318-radi-budusego-svoih-detej-golovkin-nazval- svoj-lubimyj-gorod-i-rasskazal-o-seme.html",
      "https://www.nur.kz/1797004-iznasilovali-izbili-santazirovali-astancanka-stala-zertvoj-dvoih-muzcin.html",
    ]
};

const {output, href}= data;

const finalOutput = [];

output.forEach((obj, idx) => {
    finalOutput.push({...obj, href: href[idx]});
});

console.log(finalOutput);

答案 1 :(得分:0)

请尝试以下代码:

var keys = href;
var values = output;

var resultArray = [];
for(var i=0; i<values.length; i++){
  var obj = {};
  for(var j=0; j<keys.length; j++){
     obj[keys[j]] = values[i][j];
  }
   resultArray.push(obj);
}

LMK。谢谢。