接收对象(参数)并返回一个数组

时间:2016-09-29 09:51:15

标签: javascript arrays

我一直在尝试接收一个对象作为参数并将其作为数组返回,但没有运气。我不明白为什么它可能是代码中的任何问题。我可能会在这一点上迷失,或者完全脱离逻辑。

function att(testobj) {
    var q = "";
    for(var i = 0; i < testobj.length ; i++){
        q += testobj[i] + " ";
    }
    return q;
}

var obj1= {
    Big: 10,
    low: 5
};

var attObj1= att(obj1);
console.log(attObj1); 

var obj2= {
    a: 10,
    b: 20,
    c: 30
};

var attObj2= att(obj2);
console.log(attObj2);

我尝试在代码中执行for-loop,检查每个数组长度并使用q += testobj[i]对其进行排序,但我没有得到任何结果。只是一个空白的控制台日志

3 个答案:

答案 0 :(得分:2)

本文可以帮助您object.keys()

var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // console: ['0', '1', '2']

var obj = { key0: 'value-0', key1: 'value-1', key2: 'value-2' };
console.log(Object.keys(obj)); // console: ['key0', 'key1', 'key2']

答案 1 :(得分:1)

您可以迭代键并返回连接值。

使用的方法:

  • Object.keys用于从对象获取所有密钥,
  • Array#join将数组转换为字符串,并将给定的字符串作为粘合剂。

function att(testobj) {
  return Object.keys(testobj).join(', ');  
}

var obj1= {
    Big: 10,
    low: 5
};

var attObj1= att(obj1);
console.log(attObj1); 

var obj2= {
    a: 10,
    b: 20,
    c: 30
};

var attObj2= att(obj2);
console.log(attObj2);

答案 2 :(得分:1)

虽然Array在技术上是Object,但一个区别是它们可以迭代。

例如,您可以这样做:

var someArray = ['some', 'value', 'here'];

for (var i = 0; i <= someArray.length; i++) {
  console.log(someArray[i]);
}

但是,对于一个对象,你不能,因为它不包含迭代功能。

如果您想要互换地遍历ObjectArray,则需要考虑使用支持这两者的方法。

例如:

function iterateOver(obj) {
  for (var k in obj) {
    console.log('Key', k, 'Value', obj[k]);
  }
}

var someArray = ['some', 'value', 'here'];
var someObject = {
  some: 'value',
  another: 'great_value'
};

iterateOver(someArray);
iterateOver(someObject);