我有一个变量,例如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"
但我不知道如何为一组对象做这件事。有什么建议吗?
答案 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。
但我不知道如何为一组对象做这件事。任何 建议?
使用some
和includes
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
函数来做这种事情,这是一个例子:
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;