使用JS获取数组中对象的索引

Get index of an object inside of an array with JS

本文关键字:对象 索引 数组 JS 获取 使用      更新时间:2023-09-26

我正在制作一个js代码,从数组中获取对象。我只是想有一个脚本,采取对象索引,并在html页面上打印它。我尝试了很多不同的方法,但都不起作用。例如,假设第一个{}为0,然后第二个速率为3.3的{}为1…这是一个jsfiddle: https://jsfiddle.net/76e40vqg/1/

var data = [{"image":"link1","name":"Name1","address":"Address1","rate":"4.4"},{"image":"link2","name":"Name2","address":"Address2","rate":"3.3"},{"image":"link3","name":"Name3","address":"Address3","rate":"3.2"}
];
var restoName = [];
for(i = 0; i < data.length; i++){    
    if(restoName.indexOf(data[i].name) === -1){
        restoName.push(data[i].name);        
    }        
}
var restoAddress = [];
for(i = 0; i < data.length; i++){    
    if(restoAddress.indexOf(data[i].address) === -1){
        restoAddress.push(data[i].address);        
    }        
}
var restoRate = [];
for(i = 0; i < data.length; i++){    
    if(restoRate.indexOf(data[i].rate) === -1){
        restoRate.push(data[i].rate);        
    }        
}
var restoImage = [];
for(i = 0; i < data.length; i++){    
    if(restoImage.indexOf(data[i].image) === -1){
        restoImage.push(data[i].image);
    }        
}
for(i = 0; i < restoName.length; i++){
document.getElementById('output').innerHTML += "Image : <a href='" + restoImage[i] + "'><div class='thumb' style='background-image:" + 'url("' + restoImage[i] + '");' + "'></div></a><br>" + "Name : " + restoName[i] + "<br>" + "Address : " + restoAddress[i] + "<br>" + "Rate : " + restoRate[i] + "<br>" + "Index" + "<br><hr>";
  }

谢谢

我想你缺少..."Index" + i +"<br>...

https://jsfiddle.net/76e40vqg/4/

@Nina Scholz的解决方案也起作用了

您可以只使用一个循环来显示Array#forEach的数据。

forEach() 方法对每个数组元素执行一次提供的函数。

var data = [{ image: "link1", name: "Name1", address: "Address1", rate: "4.4" }, { image: "link2", name: "Name2", address: "Address2", rate: "3.3" }, { image: "link3", name: "Name3", address: "Address3", rate: "3.2" }];
data.forEach(function (object, index){
    console.log('index', index);
    console.log('image', object.image);
    console.log('name', object.name);
    console.log('address', object.address);
    console.log('rate', object.rate);
    console.log('--');
});

传统的for循环和索引i

var data = [{ image: "link1", name: "Name1", address: "Address1", rate: "4.4" }, { image: "link2", name: "Name2", address: "Address2", rate: "3.3" }, { image: "link3", name: "Name3", address: "Address3", rate: "3.2" }],
    i;
for (i = 0; i < data.length; i++) {
    console.log('index', i);
    console.log('image', data[i].image);
    console.log('name', data[i].name);
    console.log('address', data[i].address);
    console.log('rate', data[i].rate);
    console.log('--');
}