我一直在尝试接收一个对象作为参数并将其作为数组返回,但没有运气。我不明白为什么它可能是代码中的任何问题。我可能会在这一点上迷失,或者完全脱离逻辑。
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]
对其进行排序,但我没有得到任何结果。只是一个空白的控制台日志
答案 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]);
}
但是,对于一个对象,你不能,因为它不包含迭代功能。
如果您想要互换地遍历Object
和Array
,则需要考虑使用支持这两者的方法。
例如:
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);