javascript - 使用两个数组 Javascript 查找并获取 ID

标签 javascript arrays csv object multidimensional-array

所以我必须 csv,其中一个包含“T 恤,ID”,另一个仅包含 T 恤。

使用 papaparse 后,我得到了两个像这样的数组:

[]
data: Array(6)
0: {tshirt: "a", ID: 121}
1: {tshirt: "b", ID: 132}
2: {tshirt: "c", ID: 147}
3: {tshirt: "d", ID: 97}
4: {tshirt: "e", ID: 76}

[]
data: Array(2)
0: {tshirt: "d", ID: null}
1: {tshirt: "a", ID: null}

我想要做的是使用第二个数组+第一个数组的 ID 生成一个新的 csv。 像这样的事情:

[]
data: Array(2)
0: {tshirt: "d", ID: 97}
1: {tshirt: "a", ID: 121}

我已经尝试了一切,但无法使其发挥作用。这是我的代码:

    var data1=  []
    Papa.parse('a.csv', {
      header: true,
      delimiter: ';',
      download: true,
      dynamicTyping: true,
      skipEmptyLines: true,
      complete: function(results) {
        data1.data = results.data
      }
    });

    var data2 = []
    Papa.parse('b.csv', {
      header: true,
      delimiter: ';',
      download: true,
      dynamicTyping: true,
      skipEmptyLines: true,
      complete: function(results) {
        data2.data = results.data
      }
    });

console.log(data1)
console.log(data2)

最佳答案

这是一个解决方案,即从第一个数组创建 map :

const data1 = 
[{tshirt: "a", ID: 121},
{tshirt: "b", ID: 132},
{tshirt: "c", ID: 147},
{tshirt: "d", ID: 97},
{tshirt: "e", ID: 76}]

const data2 = 
[{tshirt: "d", ID: null},
{tshirt: "a", ID: null}]

const data1map = data1.reduce ((acc, d) => ({...acc, [d.tshirt]: d}), {})

const result = data2.map(d => ({...d, ID: data1map[d.tshirt].ID}))

关于javascript - 使用两个数组 Javascript 查找并获取 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60548094/

相关文章:

Javascript: object1 = object2 究竟产生了什么?

ruby-on-rails - Rails : CSV. 生成并重命名 header

python - 在每个文件上循环运行 shell 命令,将每个文件从标量转换为相应的 csv

c++ - 数组大小推导

javascript - 为相等数组编写正确的断言测试

python - GAE Python - CSV Writer 给出 ascii 编解码器错误

javascript - 计算在java webdriver中加载的图像的md5

javascript - 全日历事件总是出现在全天事件时段以及如何编辑

javascript - 在 <script> 标签位置插入元素

java - 如何将点(.)分隔的字符串转换为数组列表?