我有一个列表如下:
var myList = [{type:'Prospect__c', typeName__c:'high_school', },
{type:'Procedure__c', typeName__c:'in_program', },
{type:'Procedure__c', typeName__c:'attention_plz', }]
我想检查列表中是否存在in_program
(我的列表中是否存在)?
我已经使用了不同类型的代码来获得结果,但我没有成功。
以下是我的一些尝试:
if(myList.indexOf(' in_program')> 0)
if(myList.indexOf(typeName__c:' in_program')> 0)
if(myList.indexOf(" typeName__c:' in_program'")> 0)
答案 0 :(得分:2)
您可以遵循许多不同的策略,但indexOf
仅在您查找完全相同的根对象时才有效,而不是其中一个属性
一个好的方法是使用过滤器:
var filteredItems = myList.filter(function(a) {
return a.typeName__c === 'in_program'
})
console.log(filteredItems.length === 0) // false
这将返回一个新集合,其中的项目按回调的返回值进行过滤。然后,检查长度,看它是否为0或更大。
答案 1 :(得分:2)
您可以使用Array.some:
var isInList = myList.some(function (obj) {
return 'in_program' === obj.typeName__c;
});
答案 2 :(得分:2)
您可以在不同的场景中使用以下方法:
如果只是查找可用性,您可以获取JSON字符串,然后签入。
正如corn3lius正确指出的那样,只检查搜索值也会搜索键。您可以在":..."
中包装searchValue,这只会搜索值
var myList = [{type:'Prospect__c', typeName__c:'high_school', },
{type:'Procedure__c', typeName__c:'in_program', },
{type:'Procedure__c', typeName__c:'attention_plz', }]
var searchVal = 'in_program';
var exist= JSON.stringify(myList).indexOf(":\"" + searchVal + "\"") > -1;
console.log(exist)
如果您知道要查找的确切键
,则可以使用数组函数
var myList = [{type:'Prospect__c', typeName__c:'high_school', },
{type:'Procedure__c', typeName__c:'in_program', },
{type:'Procedure__c', typeName__c:'attention_plz', }]
var searchVal = 'in_program';
var exist= myList.some(function(o){ return o.typeName__c === searchVal });
console.log(exist)
如果要查找值匹配的第一个对象,则应使用Array.find
var myList = [{type:'Prospect__c', typeName__c:'high_school', },
{type:'Procedure__c', typeName__c:'in_program', },
{type:'Procedure__c', typeName__c:'attention_plz', }]
var searchVal = 'in_program';
var exist= myList.find(function(o){ return o.typeName__c === searchVal });
console.log(exist)
如果要查找值匹配的所有对象,则应使用Array.filter
var myList = [{type:'Prospect__c', typeName__c:'high_school', },
{type:'Procedure__c', typeName__c:'in_program', },
{type:'Procedure__c', typeName__c:'attention_plz', }]
var searchVal = 'Procedure__c';
var exist= myList.filter(function(o){ return o.type === searchVal });
console.log(exist)
答案 3 :(得分:1)
检查以下代码:
var myList = [{type:'Prospect__c', typeName__c:'high_school', },
{type:'Procedure__c', typeName__c:'in_program', },
{type:'Procedure__c', typeName__c:'attention_plz', }];
var length = myList.length;
for(i = 0; i < length ; i++){
if(myList[i].typeName__c == 'in_program')
{
alert("true");
}
}
答案 4 :(得分:1)
var entry = mylist.find(function(e){ return e.typeName__c === 'in_program'; });
if( entry ) {
// found object in list
}
在此处记录:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find