【发布时间】:2019-03-21 22:36:07
【问题描述】:
我正在尝试将 API 调用的结果与现有数组进行比较。基本上,我想创建一个循环遍历数组的函数,然后循环遍历 API 中的数据以查看是否匹配。
这是我正在使用的数组的一个示例
let array = [ {
"name": "student1",
"id": 134},
{
"name": "student2",
"id": 135},
{
"name": "student3",
"id": 136}
]
这是我在 JavaScript/jQuery 中的函数
function getData() {
$.ajax({
url: "www.studentapi.com",
dataType: "json"
}).done(function(data) {
console.log(data)
}
}
我得到的数据看起来像这样: [ {
"id": 134,
"score": 45},
{
"id": 138,
"score": 67},
{
"id": 139,
"score": 34}
]
我正在尝试找到一种方法来在数组和数据中找到匹配的 id。到目前为止,我已经尝试过:
for (let j =0; j < data.length; j++) {
if (array[j]["id"] === data[j].id) {
console.log("we have a match!")
}
else {
console.log("not a match!");
}
}
但这不起作用。我在这里做错了吗?
【问题讨论】:
-
已更正!虽然仍然无法正常工作
-
通过这种逻辑,您假设每个相应的索引都会带来相同的确切信息。这意味着,假设您在 j=3 中,您假设数据和数组中的索引 j 包含相同的信息。我想您要做的是检查第一个数组中的 ID 是否与第二个数组中的至少一个值匹配(来自 json 请求的值)。
-
当我尝试它时它正在工作。正如预期的那样,由于
135!==138和136!==139,第一个对象得到一个we have a match!,另一个对象得到两个not a match。您的解决方案的一个潜在问题是,它仅在对象在两个数组之间的顺序完全相同时才有效。 -
@Benjamin 是的,这就是问题所在,这就是我在上面评论的内容。
标签: javascript jquery json loops match