Javascript是否获取数组中键的所有值?
如果没有jQuery,如何获取数组中键的所有值Javascript是否获取数组中键的所有值?,javascript,Javascript,如果没有jQuery,如何获取数组中键的所有值 var species = [{"code_name":"b","public_name":"a"},{"code_name":"d","public_name":"c"},{"code_name":"f","public_name":"e"}]; var speciesVals = Object.keys(species).map(function (val, key) { return val; }); 结果: [ '0', '
var species = [{"code_name":"b","public_name":"a"},{"code_name":"d","public_name":"c"},{"code_name":"f","public_name":"e"}];
var speciesVals = Object.keys(species).map(function (val, key) {
return val;
});
结果:
[ '0',
'1',
'2',
'_atomics',
'_parent',
'_cast',
'_markModified',
'_registerAtomic',
'$__getAtomics',
'hasAtomics',
'_mapCast',
'push',
'nonAtomicPush',
'$pop',
'pop',
'$shift',
'shift',
'pull',
'splice',
'unshift',
'sort',
'addToSet',
'set',
'toObject',
'inspect',
'indexOf',
'remove',
'_path',
'isMongooseArray',
'validators',
'_schema' ]
但我追求的是:
["code_name":["b", "d", "d"], "public_name":["a", "c", "e"]
可能吗
编辑:
那么这个呢:
[{“code\u name”:[“b”、“d”、“d”]},{“public\u name”:[“a”、“c”、“e”}]
使用JavaScript方法
var物种=[{
“代码名称”:“b”,
“公共名称”:“a”
}, {
“代码名称”:“d”,
“公共名称”:“c”
}, {
“代码名称”:“f”,
“公共名称”:“e”
}];
var temp=物种减少(功能(res,v){
//迭代对象(数组元素)
Object.keys(v).forEach(函数(k){
//如果未定义,则将属性定义为数组
res[k]=res[k]| |[];
//将值推送到首选数组
res[k].push(v[k]);
});
//返回更新的对象
返回res;
//将初始值定义为对象以保存结果
}, {});
//现在创建您的预期结果
var speciesVals=Object.keys(temp)//获取所有属性名
.map(函数(v){//迭代它们以生成结果数组
var obj={};//为创建对象
obj[v]=temp[v];//添加属性
return obj;//返回对象(新数组元素)
});
log(speciesVals);
使用JavaScript方法
var物种=[{
“代码名称”:“b”,
“公共名称”:“a”
}, {
“代码名称”:“d”,
“公共名称”:“c”
}, {
“代码名称”:“f”,
“公共名称”:“e”
}];
var temp=物种减少(功能(res,v){
//迭代对象(数组元素)
Object.keys(v).forEach(函数(k){
//如果未定义,则将属性定义为数组
res[k]=res[k]| |[];
//将值推送到首选数组
res[k].push(v[k]);
});
//返回更新的对象
返回res;
//将初始值定义为对象以保存结果
}, {});
//现在创建您的预期结果
var speciesVals=Object.keys(temp)//获取所有属性名
.map(函数(v){//迭代它们以生成结果数组
var obj={};//为创建对象
obj[v]=temp[v];//添加属性
return obj;//返回对象(新数组元素)
});
console.log(speciesVals);
确保这是可能的。如果数组中每个对象的对象键都相同,则可以执行以下操作:
var species=[{“code_name”:“b”,“public_name”:“a”},{“code_name”:“d”,“public_name”:“c”},{“code_name”:“f”,“public_name”:“e”}];
var res={code_name:[],public_name:[]};
对于(变量i=0;i console.log(res);
确保这是可能的。如果数组中每个对象的对象键都相同,则可以执行以下操作:
var species=[{“code_name”:“b”,“public_name”:“a”},{“code_name”:“d”,“public_name”:“c”},{“code_name”:“f”,“public_name”:“e”}];
var res={code_name:[],public_name:[]};
对于(变量i=0;i console.log(res);
我建议对属性使用固定数组,因为您只需要'code\u name
和public\u name
var species=[{“code_name”:“b”,“public_name”:“a”},{“code_name”:“d”,“public_name”:“c”},{“code_name”:“f”,“public_name”:“e”}],
speciesVals={};
物种。forEach(功能(a){
['code_name','public_name'].forEach(函数(k){
物种[k]=物种[k]| |[];
speciesVals[k].push(a[k]);
});
});
console.log(speciesVals);
我建议对属性使用固定数组,因为您只需要'code\u name
和public\u name
var species=[{“code_name”:“b”,“public_name”:“a”},{“code_name”:“d”,“public_name”:“c”},{“code_name”:“f”,“public_name”:“e”}],
speciesVals={};
物种。forEach(功能(a){
['code_name','public_name'].forEach(函数(k){
物种[k]=物种[k]| |[];
speciesVals[k].push(a[k]);
});
});
console.log(speciesVals);
为什么不直接使用循环?for(var-result={},i=0,l=species.length,k;我为什么不直接使用循环?for(var-result={},i=0,l=species.length,k;i欢迎!是的,不需要过度复杂,因为这是一个简单的老式迭代任务。:)我完全同意你的看法。你想得太多了。原型方面!如果你计划做很多变化(比如获取不同的键,使用不同的原始数组结构,结果的不同组织,等等),这是有道理的,但是如果你想要一个能有效地解决这个单一任务的代码,我每次都会使用一个循环。很酷。谢谢你的提示。顺便问一下,我怎样才能把它改成[{“code_name”:[“b”,“d”,“d”]},{“public_name”:[“a”,“c”,“e”}]
-数组中的对象?没问题,我很高兴能帮上忙。不客气!是的,不需要过度复杂,因为这是一个简单的老式迭代任务。:)我完全同意你的看法。我们过度考虑了。原型方面!如果你计划做很多变化,这是有道理的(比如获取不同的键,使用不同的原始数组结构,不同的结果组织等等),但是如果你想要一个代码能够有效地解决这个单一任务,我每次都会使用一个循环。很酷。谢谢你的提示。顺便问一下,我怎样才能改为[{“code\u name”:[“b”,“d”,“d”],{“public\u name”:[“a”,“c”,“e”}]
-数组中的对象?没问题,我很高兴能帮上忙。谢谢。这个怎么样:[{“code\u name”:[“b”、“d”、“d”],{“public\u name”:[“a”、“c”、“e”}]
?@teelou:很高兴帮助你:)谢谢。这个怎么样:[{“code\u name”:[“b”、“d”、“d”},{“public\u name”:[“a”、“c”、“e”}],
?@teelou很高兴帮助你:)