数组到对象第一个和最后一个

时间:2017-03-28 00:15:23

标签: javascript arrays object

我需要获取给定数组中的第一个和最后一个元素,并返回一个对象,其中第一个元素作为键,最后一个元素作为值。

这是我的代码:

function transformFirstAndLast(array) {
    array=[];
    var object={}; 
    object[key]=value;// make object
    var key=array[0];
    var value=array[array.length-1];

    return object;} // return object

无论出于何种原因,它都在对象内返回undefined。我发誓今天早上工作......

我一直在尝试:

 function  transformFirstAndLast(array) {
     array=[];
     var object = {}; 
     object[array[0]] = array[array.length-1];}

但是在没有构建对象的情况下返回undefined。

2 个答案:

答案 0 :(得分:0)

使用计算属性名称很简单:

function transformFirstAndLast(array) {
  return {[array[0]]: array[array.length - 1]};
}

或者如果您愿意:

const transformFirstAndLast = ([head, ...tail]) => ({[head]: tail.pop()});

答案 1 :(得分:-1)

您在功能开始时重新声明array

此外,在我看来,使用“数组”和“对象”作为变量名是一个坏主意。只是一个错字可能会让你弄乱阵列和对象。这可能有副作用。

这是使用array.shift()和array.pop()方法的用例的功能小提琴。

var myArray=['one','two','three','four'];

function buildObject(arr) {
  var myObject={},
      key=arr.shift(),
      val=arr.pop();

  myObject[key]=val;
  return myObject;
}

console.log(buildObject(myArray));