【发布时间】:2020-08-17 16:19:51
【问题描述】:
我正在尝试根据来自各种复选框的用户输入从 JSON 文件中提取数据。下面是我的 JSON 文件的示例;
{
"factor": 1,
"pathway": 2,
"title": "Lorem impsum",
},
{
"factor": 3,
"pathway": 2,
"title": "Lorem impsum",
},
{
"factor": 4,
"pathway": 2,
"title": "Lorem impsum",
},
我首先遍历复选框的值以获取每个用户输入类别的数组,所以我最终会得到两个看起来像这样的数组。
factorArray = [1,3,4]
pathwayArray = [2]
在获取请求期间比较这些数组并在两个值相关的地方提取相关 JSON 的最佳方法是什么?所以对于这个例子,所有三个 JSON 对象都将被返回。
我的获取代码目前如下所示:
function getFactors(e) {
e.preventDefault();
var checkboxesPath = document.querySelectorAll('#pathway:checked')
var pathwayArray = [];
// Retrieve user input from checkboxes
for (var i = 0; i< checkboxesPath.length; i++) {
pathwayArray.push(checkboxesPath[i].value)
}
var checkboxesFactor = document.querySelectorAll('#factors:checked')
var factorsArray = [];
for (var i = 0; i< checkboxesFactor.length; i++) {
factorsArray.push(checkboxesFactor[i].value)
}
fetch("pathway.json")
.then(res => res.json())
.then(data => {
let output = ``;
var results = data.filter(obj => factorsArray.includes(obj.factor) && pathwayArray.includes(obj.pathway))
console.log(results);
})
}
我尝试在 map 函数中循环遍历数组,但不能让它为多个值工作,用简单的英语我希望得到这样的东西
where factorArray[i] == pathwayArray[i] {
push relevant JSON to DOM
}
【问题讨论】:
-
太模糊了。
-
你的意思是在 javascript 中过滤那个 JSON 文件,还是改变你的后端来为你做这件事?在您的问题中添加更多详细信息可以帮助我们帮助您
-
数据的形状是什么?
-
嘿 - 抱歉,我添加了更多细节。我希望在 javascript 中过滤 JSON 文件
标签: javascript json loops fetch