创建一个函数来列出对象

时间:2017-05-20 14:27:41

标签: arrays object key

这是作业。请不要投票。每个人都必须从某个地方开始,每个人的学习方式都不同。

我需要创建一个函数来构建一个仅由任何给定的简单对象中的值组成的数组:例如: //头痛{abd:123,def:345,ghi:756}应该产生阵列果汁[123,345,756];

如果我输入了object.key' headache.abd',控制台将显示值' 123'并使用此逻辑,我尝试使用'的Array.push'用于构建列表的功能。这是我的代码:



function listAllValues(headache) {
  var juice =[];
  for (var keys in headache){
      juice.push(obj.keys);
  }
  console.log(juice);
}




//但上面的代码打印出[undefined,undefined,undefined],而不是[123,345,756]。我在哪里搞砸了?我觉得我很接近,但我尝试了各种组合却没有成功:(请帮忙。

2 个答案:

答案 0 :(得分:0)

使用obj.keys的头痛[键] insteda。

function listAllValues(headache) {
  var juice =[];
  for (var keys in headache){
      juice.push(headache[keys]);
  }
  alert(juice);
}


headache = {abd:123, def: 345, ghi: 756} ;
listAllValues(headache);

答案 1 :(得分:0)

你的代码有几个不可思议的东西:

  • 它尝试使用obj对象,但这不存在

  • 您永远不会使用循环为您提供的keys项目

    • 应该是key而不是
  • 您永远不会使用hasOwnProperty过滤它,而您应该始终这样做。

  • 您在通常被视为不良的功能内打印

修正了代码:

function listAllValues(headache) {
  var juice =[];
  for (var key in headache){
        if (headache.hasOwnProperty(key)) {
          juice.push(headache[key]);
       } 
  }
  return juice;
}

console.log(listAllValues({abd:123, def: 345, ghi: 756} ))