javascript-从json对象提取数组

joh*_*ith -1 javascript arrays algorithm performance json

假设我们有以下json对象:

[{"a1" : "a1Val", "a2" : "a2Val", "a3" : "a3Val"}, 
 {"b1" : "b1Val", "b2" : "b2Val", "b3" : "b3Val"},

 ....

 {"z1" : "z1Val", "z2" : "z2Val", "z3" : "z3Val"}]
Run Code Online (Sandbox Code Playgroud)

我们如何从仅X2键值对的对象数组中检索。

意思是,以下结果:

 [ {"a2" : "a2Val"}, {"b2" : "b2Val"}, ... ,{ "z2" : "z2Val"}] 
Run Code Online (Sandbox Code Playgroud)

在最佳性能内。

密钥不必包含数字。

我需要的是一个可以接收参数的函数-i,并返回原始json对象中所有第i个对象的数组

例如,如果我们看上面的json对象,然后调用方法2,该方法将返回

 [ {"a2" : "a2Val"}, {"b2" : "b2Val"}, ... ,{ "z2" : "z2Val"}] 
Run Code Online (Sandbox Code Playgroud)

希望它足够清楚。

Ami*_*oki 6

你可以Array.map在这里使用

var arr = oldArr.map(function(obj){
    var key = Object.keys(obj).sort()[1], rtn = {};    
    return rtn[key] = obj[key], rtn;
});
Run Code Online (Sandbox Code Playgroud)

您正在做的是获取第二个键,然后返回具有该键和值的新Object。