javascript对象从键数组中获取值数组

javascript对象从键数组中获取值数组,javascript,key,Javascript,Key,我有一个键数组:var-keys=[“key1”、“key2”、“key3”]和一个对象数组: var objArr= [ {"key0":1,"key1":2,"key2":3,"key3":4}, {"key0":5,"key1":6,"key2":7,"key3":8} ] 我希望能够从基于键数组的对象数组中获取值。例如,它的输出将是valueArr=[[2,3,4],[6,7,8]] 我尝试了以下方法: var result = objArr.map(function(

我有一个键数组:
var-keys=[“key1”、“key2”、“key3”]
和一个对象数组:

var objArr= [
    {"key0":1,"key1":2,"key2":3,"key3":4},
    {"key0":5,"key1":6,"key2":7,"key3":8}
]
我希望能够从基于键数组的对象数组中获取值。例如,它的输出将是
valueArr=[[2,3,4],[6,7,8]]

我尝试了以下方法:

var result = objArr.map(function(a) {
    for (var i=0;i<keys.length;i++){
        return a[keys[i]];
    };
})
var result=objArr.map(函数(a){

对于(var i=0;idon
return
太早,循环仅通过第一项:

var result = objArr.map(function(a) {
    var resp = [];
    for (var i=0;i<keys.length;i++){
        resp.push(a[keys[i]]);            
    };
    return resp;
})
var result=objArr.map(函数(a){
var resp=[];

对于(var i=0;i在数组中推送
value
,并从
array\map

var-keys=[“key1”、“key2”、“key3”];
变量objArr=[{
“0键”:1,
“关键1”:2,
“关键2”:3,
“键3”:4
}, {
“键0”:5,
“关键1”:6,
“关键2”:7,
“键3”:8
}];
var result=objArr.map(函数(a){
var-arr=[];
对于(变量i=0;iconsole.log(result);
您需要将值推送到数组中,
return
将立即中断执行并返回值

试试这个:

var result = objArr.map(function(a) {
    var res = [];
    for (var i=0;i<keys.length;i++){
        res.push(a[keys[i]]);
    };
    return res;
})
var result=objArr.map(函数(a){
var-res=[];
对于(var i=0;i作为备选方案的,您可以按照建议使用
Object.values()
函数。例如:

var objArr= [
    {"key0":1,"key1":2,"key2":3,"key3":4},
    {"key0":5,"key1":6,"key2":7,"key3":8}
];

for(var i in objArr){
    objArr[i] = Object.values(objArr[i]);
}
Internet Explorer、Opera或Safari目前不支持这一点,但您可以使用嵌套

var keys=[“key1”、“key2”、“key3”],
objArr=[{“key0”:1,“key1”:2,“key2”:3,“key3”:4},{“key0”:5,“key1”:6,“key2”:7,“key3”:8}],
结果=对象映射(函数(a){
返回键。映射(函数(k){
返回[k];
});
});

console.log(结果);
同样的事情,你赢了me@ScottSelby您确实…;)非常喜欢ES6变体;)+1