数组到对象? [复制]

Posted

技术标签:

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

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

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

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

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

    数组的第一个元素作为对象的键 数组的最后一个元素作为该键的值。 我在数组中做一个 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] 【参考方案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”建立为它的值?如果您认为这个问题很明显,对不起;)

以上是关于数组到对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

数组到对象? [复制]

如何将对象数组附加到已经存在的数组? [复制]

将数组从一行复制到一个数组对象中-“_numbersArray 永远不会分配给,并且始终具有其默认值 null”[关闭]

Swift将对象添加到数组会追加副本而不是引用? [复制]

将随机值从数组复制到对象无法获得稳定的结果

如何复制位于不同选项卡中的数组对象