繁体   English   中英

与嵌套 arrays 的数组交集

[英]array intersection with nested arrays

功能性 javascript 相当新,所以请多多包涵。

编辑以获取更多信息。

我有一个使用 csv 文件创建的数组:

var url = "URL-TO-CSV/report.csv";

var request = new XMLHttpRequest();  
request.open("GET", url, false);   
request.send(null);  

var csvData = new Array();
var jsonObject = request.responseText.split(/\r?\n|\r/);
for (var i = 0; i < jsonObject.length; i++) {
csvData.push(jsonObject[i].split(','));
}

这会导致 arrays 数组,而不是密钥对。

[
  ['stringID-1',"string","string","string","string"],
  ['stringID-2',"string","string","string","string"],
  ['stringID-3',"string","string","string","string"]
]

从要匹配的 id 列表生成的另一个数组当前正在使用 jQuery (因为我还没有找到原始的 Javascript ),如下所示:

 $("input:checkbox:not(:checked)").each(function () {
     
        var $this = $(this);
        matchData.push($this.attr("id"));
           
})

这导致以下类型数组。

['stringID-1','stringID-3']

我尝试了不同的过滤器语法,但无济于事。 如果我没有收到错误,我会得到一个空数组。

我需要将两者相交并从 csvData 返回匹配的 arrays 的数组,以便我可以在每个循环中将其解析为 HTML。

我似乎无法弄清楚这一点,并且会喜欢一些方向。 提前致谢

我认为您只需要一个filter来限制在另一个数组中找到第一个索引的行:

 let csvData = [ ['item-to-match-string-id-1', "string data", "string data", "string data"], ['item-to-match-string-id-2', "string data", "string data", "string data"], ['item-to-match-string-id-3', "string data", "string data", "string data"], ['item-to-match-string-id-4', "string data", "string data", "string data"], ['item-to-match-string-id-5', "string data", "string data", "string data"], ] let matchData = ['item-to-match-string-id-2','item-to-match-string-id-5'] let matching = csvData.filter(row => matchData.includes(row[0])) console.log(matching)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM