Tuesday, November 19, 2024
Google search engine
HomeLanguagesJavascriptJavaScript Get the index of an object by its property

JavaScript Get the index of an object by its property

Given an object, the task is to get the object’s index from the array of objects of the given property name and property value using JavaScript. we’re going to discuss a few techniques.

Below are the following approaches:

  • Using Array map() Method
  • Using for loop
  • Using findIndex() Method
  • Using some() Method

Method 1: Using Array map() Method

This method creates a new array with the return value of calling a function for every array element. This method calls the provided function once for each element in an array, with maintaining the order. 

Syntax:

array.map(function(currentValue, index, arr), thisValue)

Parameters:

  • function(currentValue, index, arr): This parameter is required. It specifies a function to be run for each element in the array.
    • currentValue: This parameter is required. It specifies the value of the current element.
    • index: This parameter is optional. It specifies the array index of the current element.
    • arr: This parameter is optional. It specifies the array object to which the current element belongs.
  • thisValue: This parameter is optional. it specifies a value to be passed to the function to be used as its “this” value. If this parameter is empty, the value “undefined” will be passed.

Example: This example uses the JavaScript Array map() Method to get the object’s index with a given property.

Javascript




let arrayObj = [{
    prop_1: 'val',
    prop_2: 'val_12',
    prop_3: 'val_13'
}, {
    prop_1: 'val',
    prop_2: 'val_22',
    prop_3: 'val_23'
}];
 
function GFG_Fun() {
    let prop = 'prop_2';
    let val = 'val_22';
    console.log("Index of prop = "
        + prop + " val = " + val +
        " is = " +
        arrayObj.map(function (e) {
            return e.prop_2;
        }).indexOf(val));
}
 
GFG_Fun();


Output

Index of prop = prop_2 val = val_22 is = 1


Method 2: Using for loop

Using for loop we can iterate over the array of objects and check the given value of prop matches or not.

Example 1: This example searches for the attribute name and its value in the array and if it gets it, It returns the index of an object otherwise returns -1.

Javascript




let arrayObj = [{
    prop_1: 'val',
    prop_2: 'val_12',
    prop_3: 'val_13'
}, {
    prop_1: 'val',
    prop_2: 'val_22',
    prop_3: 'val_23'
}];
 
function fun_2(array, attr, value) {
    for (let i = 0; i < array.length; i += 1) {
        if (array[i][attr] === value) {
            return i;
        }
    }
    return -1;
}
 
function GFG_Fun() {
    let prop = 'prop_2';
    let val = 'val_22';
 
    console.log("Index of prop = '" +
        prop + "' val = '" + val + "' is = "
        + fun_2(arrayObj, prop, val));
}
 
GFG_Fun();


Output

Index of prop = 'prop_2' val = 'val_22' is = 1


Method 3: Using findIndex() Method

The Javascript Array.findIndex() method is used to return the first index of the element in a given array that satisfies the provided testing function (passed in by the user while calling). Otherwise, if no data is found then the value of -1 is returned.

Example:

Javascript




let arrayObj = [{
    prop_1: 'val',
    prop_2: 'val_12',
    prop_3: 'val_13'
}, {
    prop_1: 'val',
    prop_2: 'val_22',
    prop_3: 'val_23'
}];
 
const index = arrayObj.findIndex(object => {
    return object.prop_3 === 'val_23';
});
 
console.log(index);


Output

1

Method 4: Using some() Method

The Javascript arr.some() method checks whether at least one of the elements of the array satisfies the condition checked by the argument method. 

Example:

Javascript




let arrayObj = [{
    prop_1: 'val',
    prop_2: 'val_12',
    prop_3: 'val_13'
}, {
    prop_1: 'val',
    prop_2: 'val_22',
    prop_3: 'val_23'
}];
 
let index;
 
arrayObj.some((object, idx) => {
    if (object.prop_2 === 'val_12') {
        index = idx;
        return true;
    }
});
 
console.log(index);


Output

0

RELATED ARTICLES

Most Popular

Recent Comments