如何在JS或jQuery中打印数组的字段

时间:2018-04-28 18:55:16

标签: javascript jquery arrays

我有一个对象数组,我想迭代它并打印对象的字段。

控制台日志示例:

2:{id: "15", nombre: "Intrafungol", categoria: "Antifungicos", efecto: "Lucha 
contra la Tiña.", efecto_secundario: "Puede ocasionar hipersalivación, 
vómitos, diarrea y/o anorexia.", …}

所以这是一个例子。我想打印所有药物的名称。我的代码无效

 function process_data(medicines) {

     for(var medicine in medicines ) {
       console.log(medicine["name"]);

非常感谢!

5 个答案:

答案 0 :(得分:1)

for (i in array)为您提供索引(可枚举属性),而不是数组中的项目。

如果您将其更改为以下内容,则您的示例将起作用:

for (var medicine in medicines ) {
    console.log(medicines[medicine].nombre);
}

但是,如果你能够使用array.forEach()这是很好的,因为你在函数的每个回调中得到了项目,并且根本不必处理索引:

medicines.forEach(function (medicine) {
    console.log(medicine.nombre);
});

查看更多: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

答案 1 :(得分:0)

那个人不会工作,因为在药物对象上没有属性name。也许你在引用nombre的地方可以尝试更换属性,看看它是否有效:

 function process_data(medicines) {
     for(var medicine in medicines ) {
       console.log(medicine["nombre"]);

您也可以使用forEach数组方法

function process_data(medicines) {
    medicines.forEach(medicine => console.log(medicine.nombre);
}

答案 2 :(得分:0)

我正在尝试这样做:

function process_data(medicines) {


var html = "";
medicines.forEach(medicine => console.log(medicine.nombre));


 for(var medicine in medicines ) {



    html += "<div class='card mb-2 col-3 card-medicines'>"
            + "<a data-toggle='modal' href='#modall' style='width: 40%'><img class='card-img-top' src='" + medicine['url'] + "'></a>"
            + "<div class='card-block'>"
            + "<h4 class='card-title'>"
            + medicine.nombre
            +"</h4>"

我无法打印药物['url]和medicine.nombre

答案 3 :(得分:0)

使用数组的for循环更容易:

for (var i=0; i<medicines.length; i++) { console.log(medicines[i].nombre); }

答案 4 :(得分:0)

我认为这是用ES6编写的最简单的实现:

const processData = medicines => medicines.forEach(med => {
  document
   .querySelector('.card')
   .insertAdjacentHTML('beforeend', `<h4>${med.nombre}</h4>`);
})

JSFiddle

上查看