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

Receives an object (parameter) and returns an array

本文关键字:一个 数组 返回 参数 一个对象      更新时间:2023-09-26

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

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循环,它检查每个数组的长度,并通过使用q += testobj[i]排序,但我没有得到任何结果。只是一个空白的控制台日志。

本文可能对您有所帮助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']

您可以遍历键并返回连接值。

方法:

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

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

虽然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);