2014-08-30 85 views
-1

我有这样一种阵列的javasript:从Javascript数组中获取数组数据?

{id: 'ZM', name: "Zambia"}, 
{id: 'MZ', name: "Mozambique"}, 
{id: 'BW', name: "Botswana"}, 
{id: 'NA', name: "Namibia"}, 
{id: 'MW', name: "Malawi"}, 
{id: 'ZW', name: "Zimbabwe"}, 

我怎么能由ID( 'BW',MW)取perticuler数组记录?例如,取后,我想数组记录如下图所示:

{id: 'BW', name: "Botswana"}, 
{id: 'MW', name: "Malawi"} 
+0

看看'Array.prototype.filter' – 2014-08-30 11:26:34

回答

1

你想是这样的:

function fetch(array, ids) { 
    return array.filter(function (el) {return ids.indexOf(el.id) !== -1;}); 
} 

它返回一个只包含IDS阵列中的那些ID阵列的过滤器版本。 YOu可以像这样使用它:

var arr = [ {id: 'ZM', name: "Zambia"}, 
{id: 'MZ', name: "Mozambique"}, 
{id: 'BW', name: "Botswana"}, 
{id: 'NA', name: "Namibia"}, 
{id: 'MW', name: "Malawi"}, 
{id: 'ZW', name: "Zimbabwe"}]; 

function fetch(array, ids) { 
    return array.filter(function (el) {return ids.indexOf(el.id) !== -1;}); 
} 

fetch(arr, ["BW","MW"]);//Outputs [{id: 'BW', name: "Botswana"},{id: 'MW', name: "Malawi"}] 
+0

感谢您的帮助。你是摇滚乐。 – vin 2014-08-30 11:33:30

+0

没问题:)如果你认为这是正确的答案,你可以请接受它(点击左下角的这个帖子下的选中标记。) – ShaneQful 2014-08-30 11:48:47