如何在共享相同未知密钥的同一数组中合并多个对象?

萨莎罗曼诺夫

我试图将多个对象合并到一个数组中,这些对象共享键,但是这些键是未知的。例如

var obj = {
    "127.0.0.1:26969" : 1,
    "127.0.0.2:26969" : 1,
    "127.0.0.3:26969" : 1,
    "127.0.0.4:26969" : 1,
}

var obj1 = {
    "127.0.0.1:26969" : 1001,
    "127.0.0.2:26969" : 1002,
    "127.0.0.3:26969" : 1003,
    "127.0.0.4:26969" : 10004,
}

var obj2 = {
    "127.0.0.1:26969" : 2001,
    "127.0.0.2:26969" : 2002,
    "127.0.0.3:26969" : 2003,
    "127.0.0.4:26969" : 2005,
}

The desired output is to be like this

var array = [
  {
   "ip": "127.0.0.1",
   "status": "local" /// this is custom key it didn't exist in the original obj
  },{
   "ip": "127.0.0.2",
   "status": "local-local",
   "first-customkey": 1001,
   "second-customkey": 2001
  },etc.....
];

到目前为止,我一直尝试的是组成包含这些对象的数组

通过这种方法

var  objCombine = [];
for (let key in obj) {
  objCombine.push({
    'ip': key.split(':')[0],
    'status': 'local',
  })                      
}

for (let key in obj1) {
  objCombine.push({
    'ip': key.split(':')[0],
    'first-customkey': obj1[key],
  })                      
}

for (let key in obj2) {
  objCombine.push({
    'ip': key.split(':')[0],
    'second-customkey': obj2[key],
  })                      
}

输出类似于期望的结果,但是我现在有一个包含多个对象的数组,这些对象具有未知的共享密钥,这是如何将每个对象与其键对合并的问题。

现在我已经尝试过了

function extend (array) {
    var newArray = [];
    var extended = {};
    var merge = function (obj, callback) {
      for (var prop in obj) {
        if (obj.hasOwnProperty(prop)) {
           extended[prop] = obj[prop];
        }
      }
      callback(extended);
    };
    array.forEach(arg => merge(arg, callback));
    function callback (extended) {
        if (Object.keys(extended).length === 4) {
            console.log(extended);
            newArray.push(extended);
        }
    }
    return newArray;
};

extend(objCombine);

但是我只能像这样重复最后一个对象

[
  {
    "ip": "127.0.0.4",
    "status": "local",
    "first-customkey": 10004,
    "second-customkey": 2005
  },
  {
    "ip": "127.0.0.4",
    "status": "local",
    "first-customkey": 10004,
    "second-customkey": 2005
  },
  {
    "ip": "127.0.0.4",
    "status": "local",
    "first-customkey": 10004,
    "second-customkey": 2005
  },
  {
    "ip": "127.0.0.4",
    "status": "local",
    "first-customkey": 10004,
    "second-customkey": 2005
  }
]

最后一个对象重复4次。

注意状态:“本地”,我想在每个对象中重复。就像上面的是静态值一样。

PS该示例中提供的所有数据不是真实的实时数据,仅用于解释我的示例。

tytyf

也许这会对您有所帮助。无法获得确切的属性名称。

var obj = {
    "127.0.0.1:26969" : 1,
    "127.0.0.2:26969" : 1,
    "127.0.0.3:26969" : 1,
    "127.0.0.4:26969" : 1,
}

var obj1 = {
    "127.0.0.1:26969" : 1001,
    "127.0.0.2:26969" : 1002,
    "127.0.0.3:26969" : 1003,
    "127.0.0.4:26969" : 10004,
}

var obj2 = {
    "127.0.0.1:26969" : 2001,
    "127.0.0.2:26969" : 2002,
    "127.0.0.3:26969" : 2003,
    "127.0.0.4:26969" : 2005,
}

// easy to loop through objects in array.
const objArr = [obj, obj1, obj2];
// getting object keys to easily find each value in each object.
const objKeys = Object.keys(obj);
// array to store the new array objects 
const array = [];
// looping through each key
objKeys.forEach((key) => {
  // creating the desired object.
  const newObj = {
      ip: key,
      status: "local-local",
    }
  // looping through each object and getting the value of that key and putting it on the new object
  objArr.forEach((obj, index) => {
    newObj[`customkey-${index}`] = obj[key];
  })
  // pushing that object once all values have been added
  array.push(newObj);
})

console.log(array);



本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将同一数组内的多个对象合并为一个对象

来自分类Dev

如何合并同一数据框的多行?或者如何在python中合并同一个键对的多个值?

来自分类Dev

MongoDB:如何在同一数据库中搜索多个集合并返回混合结果集?

来自分类Dev

MongoDB:如何在同一数据库中搜索多个集合并返回混合结果集?

来自分类Dev

根据Javascript中的公共值合并同一数组中的对象

来自分类Dev

具有相同ID的对象被推入同一数组

来自分类Dev

如何在React JS中的同一数组中添加两个或多个响应数据

来自分类Dev

将具有相同值的数组中的对象排序到同一数组中的一个对象

来自分类Dev

PHP通过同一数组中的值合并

来自分类Dev

如何在python中的同一数据框中合并行?

来自分类Dev

如何在同一数据框内合并熊猫列?

来自分类Dev

如果两对具有相同的值,则将它们合并在同一数组中

来自分类Dev

如何将两个值合并/合并到同一数组中的单个键中

来自分类Dev

比较同一数组中的对象JavaScript

来自分类Dev

通过两个具有不同键的键合并同一数组中的对象

来自分类Dev

如何在使用同一数据的多个变量中限制变量的数据更改?

来自分类Dev

如何在使用同一数据的多个变量中限制变量的数据更改?

来自分类Dev

Java:如何在同一数组中一一求和

来自分类Dev

Android:如何在同一个文件中迭代多个JSON对象数组

来自分类Dev

如何在同一数组中的随机位置上执行多线程操作?

来自分类Dev

如何在 JSX 中循环不属于同一数组的值

来自分类Dev

如何在JavaScript中按ID合并多个对象数组?

来自分类Dev

如何在JavaScript中按ID合并多个对象数组?

来自分类Dev

遍历同一数组的多个范围

来自分类Dev

如何通过比较同一数组中的两个键从数组中删除重复的对象?

来自分类Dev

使用Jackson使用未知密钥名称在同一文件中处理多个JSON对象

来自分类Dev

使用Jackson使用未知密钥名称在同一个文件中处理多个JSON对象

来自分类Dev

将数组合并到同一数组中的不同集合中

来自分类Dev

如果它们的索引相同,则合并同一数据框中的两行吗?

Related 相关文章

  1. 1

    将同一数组内的多个对象合并为一个对象

  2. 2

    如何合并同一数据框的多行?或者如何在python中合并同一个键对的多个值?

  3. 3

    MongoDB:如何在同一数据库中搜索多个集合并返回混合结果集?

  4. 4

    MongoDB:如何在同一数据库中搜索多个集合并返回混合结果集?

  5. 5

    根据Javascript中的公共值合并同一数组中的对象

  6. 6

    具有相同ID的对象被推入同一数组

  7. 7

    如何在React JS中的同一数组中添加两个或多个响应数据

  8. 8

    将具有相同值的数组中的对象排序到同一数组中的一个对象

  9. 9

    PHP通过同一数组中的值合并

  10. 10

    如何在python中的同一数据框中合并行?

  11. 11

    如何在同一数据框内合并熊猫列?

  12. 12

    如果两对具有相同的值,则将它们合并在同一数组中

  13. 13

    如何将两个值合并/合并到同一数组中的单个键中

  14. 14

    比较同一数组中的对象JavaScript

  15. 15

    通过两个具有不同键的键合并同一数组中的对象

  16. 16

    如何在使用同一数据的多个变量中限制变量的数据更改?

  17. 17

    如何在使用同一数据的多个变量中限制变量的数据更改?

  18. 18

    Java:如何在同一数组中一一求和

  19. 19

    Android:如何在同一个文件中迭代多个JSON对象数组

  20. 20

    如何在同一数组中的随机位置上执行多线程操作?

  21. 21

    如何在 JSX 中循环不属于同一数组的值

  22. 22

    如何在JavaScript中按ID合并多个对象数组?

  23. 23

    如何在JavaScript中按ID合并多个对象数组?

  24. 24

    遍历同一数组的多个范围

  25. 25

    如何通过比较同一数组中的两个键从数组中删除重复的对象?

  26. 26

    使用Jackson使用未知密钥名称在同一文件中处理多个JSON对象

  27. 27

    使用Jackson使用未知密钥名称在同一个文件中处理多个JSON对象

  28. 28

    将数组合并到同一数组中的不同集合中

  29. 29

    如果它们的索引相同,则合并同一数据框中的两行吗?

热门标签

归档