将对象 a 转换为匹配对象 b 的格式并将它们合并为 JavaScript

Convert object a to match format of object b and merge them JavaScript

本文关键字:对象 合并 格式 JavaScript 转换      更新时间:2023-09-26

我得到了两个不同格式的数据结构。

第一个:

{loginRememberMe: false, test: false}

第二种:

[
  {
    Objectname: "loginEmail",
    value: "one"
  },
  {
    Objectname: "loginPassword",
    value: "two"
  }
]

我正在尝试转换第一个结构以匹配第二个结构的格式,然后合并它们。

这需要使用JavaScript/jQuery来完成,

将来请显示您需要的最终结构。不能直接将对象与数组合并。

var first = {
  loginRememberMe: false,
  test: false
}
var second = [{
  Objectname: "loginEmail",
  value: "one"
}, {
  Objectname: "loginPassword",
  value: "two"
}]
var modifiedArray = addObjectKeysToArray(second, first);
console.log( modifiedArray );
console.log( second );
console.assert(second !== modifiedArray, 'both arrays should be different');
function addObjectKeysToArray(arr, obj) {
  // copy the arr so we don't modify the original
  var arrCopy = arr.slice(0);
  // loop through the object properties
  for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
      // add to the copied array
      arrCopy.push({
        Objectname: key,
        value: obj[key]
      });
    }
  }
  return arrCopy;
}
<script src="http://codepen.io/synthet1c/pen/WrQapG.js"></script>

您可以使用:

myArray.push({
    Objectname: Object.keys(myObject)[0],
    value: Object.keys(myObject)[1]
})

如果要获取此数组:

[
  {
     Objectname: "loginEmail",
     value: "one"
  },
  {
     Objectname: "loginPassword",
     value: "two"
  },
  {
     Objectname: "loginRememberMe",
     value: "false"
  }
]

你的对象数组称为myArray,要合并到数组中的对象称为myObject

检查演示:小提琴