例如,我有对象:
o = {a: 1, b: 2, c: 3}
我需要编写返回2d数组的函数:
arr = [['a', 'b', 'c'], [1, 2, 3]];
现在我有创建简单数组的函数,但我不知道如何从那里开始(未找到知识)。功能:
function keysAndValues(o){
var arr= [];
for(key in data)
{
arr.push(key);
//or
arr.push(data[key]);
}
return arr;
};
如何创建二维数组?
修改
所有答案都是正确的,我学到了很多新东西。非常感谢你们。坏事只有一个可以得到绿色箭头,所以它将转到第一个给出答案的人。
答案 0 :(得分:2)
需要有三个数组,一个在索引0和1处包含两个数组的外部数组。然后只需推送到相应的数组:
function keysAndValues(data){
var arr= [[],[]]; //array containing two arrays
for(key in data)
{
arr[0].push(key);
arr[1].push(data[key]);
}
return arr;
};
JS小提琴: http://jsfiddle.net/g2Udf/
答案 1 :(得分:2)
你可以使arr
一个最初包含2个空数组的数组,然后将元素推入这些数组中。
function keysAndValues(data) {
var arr = [[], []];
for (key in data) {
if (data.hasOwnProperty(key)) {
arr[0].push(key);
arr[1].push(data[key]);
}
}
return arr;
}
答案 2 :(得分:2)
我将采用图书馆方法,因为每个人都使用下划线_.keys和_.values
写下他们对主题的看法_.keys(o);
将返回o
个键,而
_.values(o)
将返回o
个值。所以从这里你可以做到
arr = [_.keys(o), _.values(o)]
答案 3 :(得分:1)
function keysAndValues(o){
var arr = new Array([] ,[]);
for(key in o)
{
arr[0].push(key);
arr[1].push(o[key]);
}
return arr;
};
你基本上想要一个包含两个数组的数组: 0:所有键 1:所有值
因此将所有键输入arr [0]并将所有值输入arr [1]
答案 4 :(得分:1)