sasi
sasi

Reputation: 4318

Iterating Array of Objects in javascript

I am having an array that consists the objects with a key, value how can we iterate each object for caste and id.

[
    Object {
        caste = "Banda",
        id = 4
    },
    Object {
        caste = "Bestha", 
        id = 6
    }
]

Upvotes: 22

Views: 90631

Answers (9)

Hemadri Dasari
Hemadri Dasari

Reputation: 33984

Arrow functions are modern these days

Using jquery $.each with arrow function

 var array = [
    {caste: "Banda", id: 4},
    {caste: "Bestha", id: 6}
 ];

 $.each(array, ( key, value ) => {
     console.log('caste: ' + value.caste + ' | id: ' +value.id);
 });

Using forEach with arrow function

  array.forEach((item, index) => {
      console.log('caste: ' + item.caste + ' | id: ' +item.id);
  });

Using map with arrow function. Here map returns a new array

  array.map((item, index) => {
      console.log('caste: ' + item.caste + ' | id: ' +item.id);
  });

Upvotes: 4

Salvatorelab
Salvatorelab

Reputation: 11873

Example code:

var list = [
    { caste:"Banda",id:4},
    { caste:"Bestha",id:6},
];
    
for (var i=0; i<list.length; i++) {
    console.log(list[i].caste);
}

It's just an array, so, iterate over it as always.

Upvotes: 15

RRikesh
RRikesh

Reputation: 14381

Using jQuery.each():

var array = [
   {caste: "Banda", id: 4},
   {caste: "Bestha", id: 6}
];
    
$.each(array, function( key, value ) {
  console.log('caste: ' + value.caste + ' | id: ' +value.id);
}

);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Upvotes: 40

Mukkul Jayhne
Mukkul Jayhne

Reputation: 21

The forEach loop accepts an iterator function and, optionally, a value to use as "this" when calling that iterator function.

 var donuts = [
    { type: "Jelly", cost: 1.22 },
    { type: "Chocolate", cost: 2.45 },
    { type: "Cider", cost: 1.59 },
    { type: "Boston Cream", cost: 5.99 }
];

donuts.forEach(function(theDonut, index) {
    console.log(theDonut.type + " donuts cost $"+ theDonut.cost+ " each");
});

Subsequently it can also be broken down to this

var donuts = [
  { type: "Jelly", cost: 1.22 },
  { type: "Chocolate", cost: 2.45 },
  { type: "Cider", cost: 1.59 },
  { type: "Boston Cream", cost: 5.99 }
];


function ShowResults(donuts) {  
    console.log(donuts.type + " donuts cost $"+ donuts.cost+ " each");  
}

donuts.forEach(ShowResults);

Upvotes: 2

Joel Harkes
Joel Harkes

Reputation: 11661

you can use jquery to iterate through all the objects jQuery wants you to fill a callback function, which jquery will call back. The first input parameter will be given the key and the second input parameter the value:

$.each(dataList, function(index, object) {
   $.each(object,function(attribute, value){
      alert(attribute+': '+value);
   });
});

documentation: http://api.jquery.com/jQuery.each/

Upvotes: 1

jortsc
jortsc

Reputation: 318

In plain JavaScript you can do this:

var array = [{caste: "Banda", id: 4}, {caste: "Bestha", id:6}];

array.forEach(function(element, index) {
    console.log(element.id+" "+element.caste);
});

The callback function is called with a third parameter, the array being traversed. For learn more!

So, you don't need to load jQuery library.

Greetings.

Upvotes: 11

LionC
LionC

Reputation: 3106

To iterate over an array filled with stuff in jQuery use $.each, to iterate over an Object for its properties use for..in

Upvotes: 0

Alepac
Alepac

Reputation: 1831

Use jQuery.each:

$.each([your array of objects], function(index, value) {
  // Do what you need, for example...
  alert(index + ': ' + value);
});

Upvotes: 0

package
package

Reputation: 4801

var array = [{caste: "Banda", id: 4}, {caste: "Bestha", id:6}];
var length = array.length;
for (var i = 0; i < length; i++) {
   var obj = array[i];
   var id = obj.id;
   var caste = obj.caste;
}

Upvotes: 4

Related Questions