查找Javascript数组中是否存在元素

时间:2016-08-29 12:36:09

标签: javascript arrays ecmascript-6

我试图查找Array中是否存在带有名称的元素。 想不通,如何实现相同的

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

4 个答案:

答案 0 :(得分:7)

plugin没有直接在数组中定义,它是在数组中的对象内定义的。

使用Array#find检查数组中的任何元素是否包含给定属性。

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

使用hasOwnProperty检查对象是否具有属性。

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

console.log(res);

作为选项,您还可以使用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);

答案 1 :(得分:3)

如果数组中存在具有特定的对象,则可以使用Array#some()Object.keys()并返回true/false



let string = [{"plugin":[""]}, {"test": "123"}];

var result = string.some(o => Object.keys(o).indexOf('plugin') != -1);
console.log(result)




答案 2 :(得分:1)

看看以下示例代码作为在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);

我希望它可以帮到你。

答案 3 :(得分:0)

像这样使用

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