数组到对象? [复制]
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”[关闭]