使用javascript从json数组中检索特定数据

使用javascript从json数组中检索特定数据,javascript,json,Javascript,Json,大家好,这里需要一些帮助,因为我是javascript的初学者。请注意,我的问题可能对大家来说都是重复的,但我需要一些启发,无论如何,我需要从JSON数组中显示我需要的数据,假设我有3个数组 var = countrysites[ "Denmark"],["United States"],["France"] 如果我用basic javascript Onclick点击丹麦的标记,它将只显示丹麦的数据,而不调用美国和法国的所有数据。这是我的javascript代码 function displ

大家好,这里需要一些帮助,因为我是javascript的初学者。请注意,我的问题可能对大家来说都是重复的,但我需要一些启发,无论如何,我需要从JSON数组中显示我需要的数据,假设我有3个数组

var = countrysites[ "Denmark"],["United States"],["France"]
如果我用basic javascript Onclick点击丹麦的标记,它将只显示丹麦的数据,而不调用美国和法国的所有数据。这是我的javascript代码

function displayData(){
for (var i = 0; i < countrysites.length; i++) {
    if (countrysites[i].country_name === id) {
      countrysites[i].country_name = country_name;

    }
  }
}    
函数displayData(){
对于(变量i=0;i
我的div有一个id“sitemark”,并且有一个displayData


提前谢谢你

如果你要通过一个多维数组,你必须使用两个这样的循环

for(var i = 0; i < arr.length; i++) {
for(var j = 0; j < arr[i].length; j++) {
    if(whatever you're looking for) {

    }
}
for(变量i=0;i

}

我在回答这个问题时有些随意,因为我仍然不确定您的数据结构是什么样子,但希望这会有所帮助

以下是您作为JSON接收的数据,然后对其进行解析。它是一个对象数组,每个对象都包含
country\u name
info
属性

const countryInfo = [
  { country_name: 'Denmark', info: 'This is Denmark' },
  { country_name: 'England', info: 'This is England' },
  { country_name: 'Japan', info: 'This is Japan' }
];
为了这个的目的,我们获取
body
元素,然后从数据中获取一个仅包含国家名称的数组

const body = document.querySelector('body');
const names = countryInfo.map(obj => obj.country_name);
我们使用该数组数据构建一些标记,并将它们添加到
body
元素中。请注意数据属性
数据名称
。我们在这里保存一份国家名称的副本

names.forEach(name => {
  const html = `<div class="sitemark" data-name="${name}">${name}</div>`;
  body.insertAdjacentHTML('beforeend', html);
});
我们抓取标记并向其添加事件侦听器。单击一个后,调用
displayData
函数

const sitemarks = document.querySelectorAll('.sitemark');
sitemarks.forEach(marker => {
  marker.addEventListener('click', displayData, false);
});
为了获取countryinfo,我们在
countryinfo
数组上执行
find
操作,从该数组中提取第一个对象实例,其中国家名称与元素上
data name
属性中的名称相同,然后从该对象获取
info
值。然后我们将该文本添加到
info
元素中

function displayData() {
  const text = countryInfo.find(obj => obj.country_name === this.dataset.name).info;
  info.innerHTML = text;
}

请回答您的问题以正确显示您的数据结构。您的代码似乎使用了一个对象数组,而不是JSON(),并且显示的代码似乎在修改数据,而不是显示任何内容。通过使用
return
可以帮助在上下文中显示代码,因为它可能在函数中,所以请显示函数以及如何调用它。请共享jsonreponse@nnnnnn好了,我已经编辑了我的codes@brk结果将是0:'国家名称':'丹麦',1:'国家名称':'法国,2:'country_name':'USA'事实上,我只想显示丹麦,如果我点击丹麦,我想显示法国。如果我点击法国,你确定你的数据不是这个吗?:
var countrysites=[“丹麦”、“美国”、“法国”]这声明了带有3个字符串的am数组<代码>var countrysites[“丹麦”]、[“美国”]、[“法国”]
在语法上是错误的。当你只需要一个数组时,使用3个独立的数组是没有意义的。事实上,我使用了for循环,但结果是一样的,它会在一次单击中显示其他国家的名称
function displayData() {
  const text = countryInfo.find(obj => obj.country_name === this.dataset.name).info;
  info.innerHTML = text;
}