简体   繁体   中英

Find if an element exists in Javascript array

I am trying to find if an element exists in Array with a name. Couldn't figure out, how to achieve the same

let string = [{"plugin":[""]}, {"test": "123"}]
console.log(string);
console.log(string instanceof Array); //true
console.log("plugin" in string); //false

plugin is not defined directly in the array, it is defined inside the object in the array.

Use the Array#find to check if any element in the array contain the given property.

array.find(o => o.hasOwnProperty('plugin'))

Use hasOwnProperty to check if object is having property.

 let array = [{"plugin":[""]}, {"test": "123"}]; let res = array.find(o => o.hasOwnProperty('plugin')); console.log(res); 

As an option, you can also use Array#filter .

array.filter(o => o.hasOwnProperty('plugin')).length > 0;

 let array = [{"plugin":[""]}, {"test": "123"}]; let containsPlugin = array.filter(o => o.hasOwnProperty('plugin')).length > 0; console.log(containsPlugin); 

You can use Array#some() and Object.keys() and return true/false if object with specific key exists in array.

 let string = [{"plugin":[""]}, {"test": "123"}]; var result = string.some(o => Object.keys(o).indexOf('plugin') != -1); console.log(result) 

take a look at following example code as a general answer for finding an element in an array in Javasript:

var power = [
    "Superman",
    "Wonder Woman",
    "Batman"
];

for (var i = 0; i < power.length && power[i] !== "Wonder Woman"; i++) {
    // No internal logic is necessary.
}

var rank = i + 1;

// Outputs: "Wonder Woman's rank is 2"
console.log("Wonder Woman's rank is " + rank);

I hope it can help you.

use like this

let array = [{"plugin":[""]}, {"test": "123"}];
array.find(o => o.plugin).length

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM