如何将字符串与数组中对象的值进行比较

时间:2019-04-18 10:46:23

标签: javascript arrays javascript-objects

我想检查一个字符串是否与对象数组中的另一个字符串匹配。

这是我的代码

let myArr = [{title: "fruits"}, {title: "vegetables"}];
//I want to match a string with the 'title' of the objects 

var str = "string";
if ( myArr[i].title == str) {
    //Do something 
}

9 个答案:

答案 0 :(得分:4)

第一件事。 避免Let myVariable上的大写字母只是let myVariable。还可以考虑使用const而不是let来保持不变:) 现在,要回答您的问题,您可以使用some方法。像这样:

const myArr = [{title: "fruits"}, {title: "vegetables"}];
const str = 'fruits';
console.log('Exist?', myArr.some((obj)=>obj.title===str));
// This will output Exist? true

答案 1 :(得分:1)

let myArr = [{ title: "fruits" }, { title: "vegetables" }];
var str = "string";
if (myArr.find(a => a.title == str) != null) {
    console.log('aaa');
}

答案 2 :(得分:1)

使用ES6

   let myArr = [{title: "fruits"}, {title: "vegetables"}];
    
    const checkTitle = obj => obj.title === 'fruits';
    
    //check if it is found
    if((myArr.some(checkTitle))){
    //do your stuff here
    console.log("it exists, yay")}

答案 3 :(得分:0)

您可以使用-

let match = false
myArr.forEach(function(element){
    if(element.title === str){
        match = true;
    }
});

答案 4 :(得分:0)

使用for循环->

读取数组的每个标题元素
let myArr = [{title: "fruits"}, {title: "vegetables"}];

let str = "string";
for(let i=0; i < myArr.length; i++) {
    if (myArr[i].title === str) {
          return true;
    }
}

答案 5 :(得分:0)

由于您显然已经在使用ES6,所以最惯用的方法是在Array.includes遍历数组之后使用map

let myArr = [{title: "fruits"}, {title: "vegetables"}];

var str = "string";

let match = myArr.map(obj => obj.title).includes(str);

console.log(match);

答案 6 :(得分:0)

在将值转换为布尔值之前,我将Array.prototype.some()Array.prototype.find()!!一起使用:

const myArr = [ { title: 'fruits' }, { title: 'vegetables' } ];

console.log(myArr.some(({ title }) => title === 'fruits'));
console.log(!!myArr.find(({ title }) => title === 'fruits'));

答案 7 :(得分:0)

您可以循环遍历数组元素并将它们与str进行比较。

var myArr = [{title: "fruits"}, {title: "vegetables"}];
var str = "string";

for (i=0;i<myArr.length;i++){
if (myArr[i].title===str){
console.log(true);
}
else {
console.log(false);

}
}

答案 8 :(得分:0)

我正在我的代码中使用它,并且可以很好地工作

var fruitsObj = myArr.find(element => element.title == "fruits")

您将获得包含标题水果的对象,该标题水果是 {title: "fruits"}