【问题标题】:Array to Object? [duplicate]数组到对象? [复制]
【发布时间】:2020-08-23 20:55:03
【问题描述】:

我是一名编程初学者,对于如何集中注意力和理解这个练习有些疑问。

谁能解释我面对这个练习的逻辑?

我有一个这样的数组: ['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce'] 我想要这个结果: { Queen : 'Beyonce' }

我想让函数返回以下内容:

  1. 数组的第一个元素作为对象的键
  2. 数组的最后一个元素作为该键的值。 我在数组中做一个 var 键,然后在数组中循环

function transformFirstAndLast(array) {
  for (var key in array) {
    for (var i = 0; i < array.length; i++) {
      Object.key[0]
    }
  }
}

【问题讨论】:

  • 这能回答你的问题吗? Convert Array to Object
  • 你只关心数组的第一个和最后一个元素?如果是这种情况,那么迭代整个数组就没有意义了。你可以只做let obj = {} 然后obj[array[0]] = array[array.length-1]

标签: javascript arrays for-loop object for-in-loop


【解决方案1】:

数组不适合这样使用。我强烈反对在现实生活中使用它。但这是你可以做到的。

  • 创建一个对象
  • 将数组的第一项设置为键
  • 将数组的最后一项设置为值
  • 返回新对象

const array = ['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce'];
console.log( compose_object(array) );
 
function compose_object(  array ) {
  let result = new Object();
  result[array[0]] = array[array.length-1];
  return result;
}

【讨论】:

    【解决方案2】:

    嘿,这样做的方法是使用非常简单的代码

    function assignObj() {
        object.key = myArray[0];
        object.value = myArray[myArray.length-1];
    }
    

    不需要for循环。除非您需要这样做,否则它会更复杂。 无论如何希望这会有所帮助。 :)

    【讨论】:

    • 嗨,詹姆斯,这返回给我 undefined.. 你知道为什么吗?
    • 如果你链接我的代码我可以看看这个但有这样的东西会工作,这很可能是因为语法不好。
    【解决方案3】:

    let data = ['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce'] ;
    
    let myobj={}
    myobj[data.shift()] = data.pop();
    
    console.log(myobj);

    【讨论】:

    • 这会改变数组,这可能不是 OP 想要或期望的。
    • 作为一个小提示,上述解决方案对于单元素数组失败。
    • @RobinZigmond 是的,可能会也可能不会。
    • @Smallhacker { key : undefined } 失败了?!
    • 感谢四位您的帮助@VahidAlimohamadi,尽管它在代码中有效,但我不太了解如何在您的提案中转换和弹出。 Shift 删除数组的第一个值并弹出最后一个值,但是如果要删除它们,它如何将“Queen”建立为对象的键,将“Beyonce”建立为它的值?如果您认为这个问题很明显,对不起;)
    猜你喜欢
    • 2017-09-19
    • 2011-10-19
    • 2019-05-12
    • 2018-10-24
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 2016-06-29
    相关资源
    最近更新 更多