【问题标题】:Match array values and create final array - Javascript匹配数组值并创建最终数组 - Javascript
【发布时间】:2021-05-23 22:31:51
【问题描述】:

我有以下数组。第一个对象是原始数据。数组内部是更改后的值。我正在尝试通过与内部数组的名称字段匹配来创建最终数据。应该是这样的

var a = 
[
  {"Id":"1","Test":"Name1","Name":"hunt9988ggggggggggggdfsf1111"},
  {"Id":"2","Test":"Name2","Name":"hunt9988ggggggggggggdfsf"},
  [
    **{"Name":"hunt9988ggggggggggggdfsf1118","Id":"1"},   // Changed value
    {"Name":"hunt9988ggggggggggggdfsf1118","Id":"2"}**
  ]
]

最终数据

var a = 
[
  {"Id":"1","Test":"Name1","Name":"hunt9988ggggggggggggdfsf1118"},
  {"Id":"2","Test":"Name2","Name":"hunt9988ggggggggggggdfsf1118"}
]

我正在尝试以下代码

var result = a.map(item => ({ value: item.Id, text: item.Name}));
console.log(result)

【问题讨论】:

    标签: javascript arrays ecmascript-2016


    【解决方案1】:

    像这样?

    注意我修改了原来的数组

    let a = [{
        "Id": "1",
        "Test": "Name1",
        "Name": "hunt9988ggggggggggggdfsf1111"
      },
      {
        "Id": "2",
        "Test": "Name2",
        "Name": "hunt9988ggggggggggggdfsf"
      },
      [{
          "Name": "hunt9988ggggggggggggdfsf1118",
          "Id": "1"
        }, // Changed value
        {
          "Name": "hunt9988ggggggggggggdfsf1118",
          "Id": "2"
        }
      ]
    ]
    const replaceArray = a.find(item => Array.isArray(item))
    replaceArray.forEach(item => a.find(aItem => aItem.Id === item.Id).Name=item.Name)
    a = a.filter(item => item.Id)
    console.log(a)

    【讨论】:

    • 是的.. 喜欢。我们可以删除 [2] 硬编码索引吗,因为内部数组的外部和内部可能都有多行..
    • 如何找到数组,还能有更多吗?
    • 我更新了 - 我现在寻找一个数组。我将取第一个数组并用它来替换
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    相关资源
    最近更新 更多