查询数组 javascript
Posted
技术标签:
【中文标题】查询数组 javascript【英文标题】:query to an array javascript 【发布时间】:2013-01-27 16:42:27 【问题描述】:如何,例如我想查找所有以 A 开头的名称,然后显示所有信息
姓名":"阿尔伯特","年龄":"14" 姓名":"艾莉森","年龄":"14"
这是我的数组 json:
var house = ["Name":"Jason","age":"43",
"Name":"Albert","age":"14",
"Name":"Luck","age":"14",
"Name":"Alison","age":"14",
"Name":"Tom","age":"12"]
【问题讨论】:
【参考方案1】:你可以使用Array.filter
:
var result = house.filter(function(o)
return o.Name.indexOf("A") === 0;
);
某些旧浏览器可能不支持此方法。在 MDN 上查看the compatibility and the workaround。
【讨论】:
【参考方案2】:您可以使用Array.prototype.filter
var names_beginning_a = house.filter(
function (item) return item["Name"][0].toLowerCase() === 'a';
);
一旦你有了这个,你可以使用JSON.stringify
和Array.prototype.map
将你的数据转换成一个字符串
var dataAsString = names_beginning_a.map(
function (item) return JSON.stringify(item); // optionally trim off and
);
【讨论】:
请注意,string[i]
访问方法是 not supported in older browsers(例如 IE 6 和 7)。如果您想确定,请使用string.charAt(i)
。
@MattiasBuelens 如果他们不支持string[i]
,他们将不支持.map
或.filter
或.stringify
,您需要对所有这些进行填充。
是的,我刚刚意识到这一点。不过,您可以选择仅使用 ECMAScript 5,或者填充这些新方法并使用 charAt
。【参考方案3】:
您可以过滤数组,以收集名称为“A”的元素,然后将匹配项映射到新的属性名称和值数组
house.filter(function(itm)
return itm.Name.charAt(0)== 'A';
).map(function(o)
var A= [];
for(var p in o)
if(o.hasOwnProperty(p))
A.push(p+':'+o[p]);
return A;
).join('\n');
/* 返回值:(字符串)*/
Name:Albert,age:14
Name:Alison,age:14
如果您需要垫片:
(function()
var A= Array.prototype;
if(!A.filter) A.filter= function(fun, scope)
var T= this, A= [], i= 0, itm, L= T.length;
if(typeof fun== 'function')
while(i<L)
if(i in T)
itm= T[i];
if(fun.call(scope, itm, i, T)) A[A.length]= itm;
++i;
return A;
if(!A.map) A.map= function(fun, scope)
var T= this, L= T.length, A= Array(L), i= 0;
if(typeof fun== 'function')
while(i<L)
if(i in T)
A[i]= fun.call(scope, T[i], i, T);
++i;
return A;
)();
【讨论】:
例如显示我使用 div $("#list").append(A) 的信息,但它在 1 行中显示了所有信息(姓名:阿尔伯特,年龄:14 姓名:艾莉森,age:14),我怎样才能向我显示 1 行数据? 添加 br 很简单:$("#list").append(A+"")【参考方案4】:你也可以使用grep
函数
arr = jQuery.grep(house, function (a) return a.Name.indexOf("A") === 0; );
http://jsfiddle.net/vYZBb/
【讨论】:
以上是关于查询数组 javascript的主要内容,如果未能解决你的问题,请参考以下文章