如何从对象(键,值 par)创建 2d 数组

How to create 2d array from object (key, value par)

本文关键字:par 创建 2d 数组 对象      更新时间:2023-09-26

例如,我有对象:

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;
};

如何创建 2D 数组?

编辑

所有的答案都是正确的,我学到了一些新东西。非常感谢你们。坏事是只有一个人可以得到绿色箭头,所以它会去第一个给出答案的人。

我将采用库方法,因为每个人都使用下划线的 _.keys 和 _.values 编写了他们对这个主题的看法

_.keys(o);

将返回o密钥,而

_.values(o)

将返回o值。所以从这里你可以做

arr = [_.keys(o), _.values(o)]

需要有三个数组,一个外部数组包含索引为 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/

你可以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;
}
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]

您可以使用 for in 循环遍历对象,将键和值添加到各个数组,并返回包含这两个生成的数组的数组:

var o = {a: 1, b: 2, c: 3}
function keyValueArray (o) {
  var keys = [];
  var values = [];
  for (var k in o ) {
    keys.push(k);
    values.push(o[k]);
  }
  return [keys,values]
}
keyValueArray(o);

斯菲德尔