检查元素是否是对象的属性到数组中

时间:2018-01-11 10:08:31

标签: javascript arrays

我有一个变量,例如myVariable.value = "text"

这种形式的对象数组:

[{name: "1", value: "word"},
 {name: "2", value: "text"},
 {name: "3", value: "xyz"}
]

我想知道myVariable.value是否可用作数组中对象的value属性,没有别的。如果是,则为true;如果不在数组中,则为false。

我在这里发现了一些东西:

var aa = {hello: "world"};
alert( aa["hello"] );      // popup box with "world"
alert( aa["goodbye"] );    // popup box with "undefined"

但我不知道如何为一组对象做这件事。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

您可以使用Array#some查找数组中的值。

let data = [{name: "1", value: "word"},
 {name: "2", value: "text"},
 {name: "3", value: "xyz"}
]

function findValue(value) {
  return data.some(item => item.value === value);
}

console.log(findValue('text'));
console.log(findValue('another'));

答案 1 :(得分:1)

  

如果是,则为true;如果不在数组中,则为false。

     

但我不知道如何为一组对象做这件事。任何   建议?

使用someincludes

var valueToFind = "text";
var isAvailable = arr.some( s => Object.values( s ).includes( valueToFind ) );

<强>演示

var arr = [{
    name: "1",
    value: "word"
  },
  {
    name: "2",
    value: "text"
  },
  {
    name: "3",
    value: "xyz"
  }
];
var valueToFind = "text";
var isAvailable = arr.some( s =>  Object.values(s).includes( valueToFind ) );
console.log(isAvailable);

将其转换为函数

var fnCheckVal = ( arr, valueToFind ) => arr.some( s => Object.values(s).includes(valueToFind) );

console.log( fnCheckVal ( arr, "text" ) );
console.log( fnCheckVal ( arr, "word" ) );

<强>演示

var arr = [{
    name: "1",
    value: "word"
  },
  {
    name: "2",
    value: "text"
  },
  {
    name: "3",
    value: "xyz"
  }
];
var fnCheckVal = ( arr, valueToFind ) => arr.some( s => Object.values(s).includes(valueToFind) );

console.log( fnCheckVal ( arr, "text" ) );
console.log( fnCheckVal ( arr, "word" ) );
console.log( fnCheckVal ( arr, "valueDoesn'tExists" ) );

答案 2 :(得分:1)

你可以使用数组find函数来做这种事情,这是一个例子:

&#13;
&#13;
var arr = [{name: "1", value: "word"},
 {name: "2", value: "text"},
 {name: "3", value: "xyz"}
];

var toFind = {value: "word"};
var foundObject = arr.find(v => v.value == toFind.value);

console.log(foundObject);
&#13;
&#13;
&#13;