判断数组里是否包含某个值?
我有一个数组,元素是对象,如何判断这个数组里任意一个对象包含有指定的属性?
比如
- JScript code
[{"A":"a","B":"b"},{"A":"a","B":"b"},{"C":"c"}]
如何判断数组里任意一个对象含有属性“A”?
[解决办法]
- JScript code
var arr = [{"A":"a","B":"b"},{"A":"a","B":"b"},{"C":"c"}] ; for(var i=0;i<3;i++) { document.write(arr[i].A + '\n'); }
[解决办法]
- JScript code
// 从数组中取出所有包含属性A的对象var array = [{ "A": "a", "B": "b" }, { "A": "a", "B": "b" }, { "C": "c"}];var result = $.grep(array, function (n, i) { for (var key in n) { if (key == "A") { return true; } continue; }});//result = [{ "A": "a", "B": "b" }, { "A": "a", "B": "b" }]
[解决办法]
- JScript code
Array.prototype.isHas=function (value){ var max=this.length,res=false; if(max==0){return false}; for(var i=0;i<max;i++){ for(var name in this[i]){ if(name==value){ res=true; break; } }; if(res){break} }; return res;};var arr = [{ "A": "a", "B": "b" }, { "C": "a", "D": "b" }, { "e": "c"}];var str=arr.isHas("A")?'存在':'不存在';alert(str)
[解决办法]
如果你的数组里面只是对象 比较容易
- JScript code
var arrTest = [{"A":"a","B":"b"},{"A":"a","B":"b"},{"C":"c"}]; function isIncludeA(arrArr , sEqu){ if(arrArr instanceof Array){ var oObj = null; var arrResult = new Array(); for(var i = 0; i < arrArr.length; i++){ oObj = arrArr[i]; if(oObj instanceof Object){ for(var prop in oObj){ if(oObj[prop] == sEqu){ arrResult.push(oObj[prop]); } } } } return arrResult.length == 0 ? "没有匹配项" : ("匹配项个数:" + arrResult.length); } } window.onload = function(){ var result = isIncludeA(arrTest , "A"); alert(result); };
[解决办法]
也没什么问题。只是写死了,结果返回不明确。思路是没有问题的
- JScript code
Array.prototype.isHas=function (a){ if(this.length==0){return false}; for(var i=0;i<this.length;i++){ if(this[i][a]){return true} }};var arr = [{ "A": "a", "B": "b" }, { "C": "a", "D": "b" }, { "e": "c"}];var str=arr.isHas("f")?'存在':'不存在';alert(str);
[解决办法]
判断对象数组里每个对象是否含有指定属性
var arr = [{"theforever_csdn":"a","B":"b"},{"theforever_csdn":"a","B":"b"},{"碧海情天":"c"}] ;
for(var i=0;i<arr.length;i++)
{
document.write('第'+(i+1)+'个对象里'+(arr[i].theforever_csdn==undefined?'不含有':'含有') + '属性theforever_csdn<br/>');
}