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

问题描述 投票:1回答:3

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

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

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

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

  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);
javascript arrays object key for-in-loop
3个回答
0
投票

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

[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);

0
投票

代替变异原始数组,您可以这样做:

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
投票

该数组就像一个已订购商品的列表,我们可以通过使用索引来访问此列表,索引也从0开始。因此,如果我要访问列表的第4个项目,我将尝试通过以下方式访问该列表:使用索引3。

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

array 等于 [''女王','伊丽莎白','心中','碧昂丝']

array [0] 等于 '女王'

array [1] 等于 '伊丽莎白'

array [2] 等于 '心'

array [3] 等于 'Beyonce'

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

现在,我们的目标是创建一个字典或类似{'Queen': 'Beyonce'}的对象。而且,如果我们尝试逐行了解功能。

  1. let result = new 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',它将创建一个对象{'Queen': 'Beyonce'}

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

© www.soinside.com 2019 - 2024. All rights reserved.