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(); |
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(); |
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); |
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); |
0