繁体   English   中英

数组的第一个值作为键名,最后一个值作为值 JavaScript?

[英]First value of an array as a Key name and last one as a value JavaScript?

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

任何人都可以解释我面对这个练习的逻辑吗?

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

我想让 function 返回以下内容:

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

有人建议我这样做,但我不太了解 shift 和 pop 在这里如何工作,因为 shift 删除数组的第一个值并弹出最后一个值。

任何人都可以帮助我吗?

 function transformFirstAndLast(array) { // your code here let myobj={} myobj[array.shift()] = array.pop(); console.log(myobj); } var output = transformFirstAndLast(['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce']); console.log(output);

简而言之,这些方法会改变原始数组(删除第一个或最后一个元素),但也会返回被删除的元素。

arr.shift():解释:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift

 const myArr = ['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce']; //remove the first element and save it in the variable firstElem const firstElem = myArr.shift(); console.log(firstElem); //output: "Queen" console.log(myArr); //output: "['Elizabeth', 'Of Hearts', 'Beyonce']"

arr.pop():解释:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop

 const myArr = ['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce']; //remove the last element and save it in the variable firstElem const lastElem = myArr.pop(); console.log(lastElem); //output: "Beyonce" console.log(myArr); //output: "['Queen', 'Elizabeth', 'Of Hearts']"

因此,为了让您的示例更清楚,请参阅此稍作修改的代码:

 function transformFirstAndLast(array) { // your code here let myobj={} const firstElem = array.shift(); const lastElem = array.pop(); myobj[firstElem] = lastElem //console.log(myobj); return myobj; } var output = transformFirstAndLast(['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce']); console.log(output);

而不是改变原始数组,你可以这样做:

 function transformFirstAndLast(array) { // your code here let myobj={}; myobj[array[0]] = array[array.length - 1]; console.log(myobj); } var output = transformFirstAndLast(['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce']); console.log(output);

数组就像一个有序项目的列表,我们可以通过索引访问这个列表,索引也是从 0 开始的。所以如果我想访问列表的第 4 项,我会尝试使用指数3。

现在,回到列表,我们在这里考虑,即 ['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce'] 并说,我们将其命名为“数组”作为 function 的参数,我们得到以下 -

数组等于['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce']

数组 [0]等于'Queen'

数组 [1]等于“伊丽莎白”

数组 [2]等于'Of Hearts'

数组 [3]等于“碧昂丝”

array.length等于4 (给出数组具有的项目数)

现在,我们的目标是创建一个字典或 object 像{'Queen': 'Beyonce'} 而且,如果我们尝试逐行理解 function。

  1. let result = new Object(); - 它创建一个空的 object,比如没有键、值对的空字典。 简单来说, result = {}
  2. result[array[0]] = array[array.length-1]; - 这是所有魔法发生的地方。 因此,首先,我们尝试评估左侧的result[array[0]]并得到result['Queen'] 对于右手边,我们有array[array.length-1] 所以如果我们打破它, array[array.length-1] => array[4-1] => array[3] => 'Beyonce' 最后,如果结合这两个方面,我们得到result['Queen'] = 'Beyonce' ,它创建了一个 object {'Queen': 'Beyonce'}

总而言之,该方法不会迭代或循环列表。 此方法没有移位或删除。 它使用数组的索引访问列表。 首先,它创建一个空的 object。 然后,它使用列表的第一项作为键,最后一项作为值,在 object 中创建一个条目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM