2017-05-01 248 views
-2

我想要获取数组中的第一个和最后一个项目并将它们显示在对象中。获取阵列中的第一个和最后一个项目 - JS

我所做的是我使用第一个和最后一个功能,然后分配第一个项目作为键和最后一个项目作为值。

var myArray = ['Rodel', 'Mike', 'Ronnie', 'Betus']; 

function firstAndLast(array) { 

var firstItem = myArray.first; 
var lastItem = myArray.last; 

var objOutput = { 
    firstItem : lastItem 
    }; 

} 

var display = transformFirstAndLast(myArray); 

console.log(display); 

但是,这一个让我陷入困境。它说未定义。任何想法为什么是这样?

+0

'myArray.first'做了什么?第一个项目是索引为'0'的项目。 – zerkms

+1

当寻找一个数组时,很确定第一个对象是'myArray [0]',最后一个是'myArray [myArray.length - 1]'。 –

+0

{Rodel:“Betus”} –

回答

4

我修改你的代码:

var myArray = ['Rodel', 'Mike', 'Ronnie', 'Betus']; 
 

 
function firstAndLast(array) { 
 

 
var firstItem = myArray[0]; 
 
var lastItem = myArray[myArray.length-1]; 
 

 
var objOutput = { 
 
    first : firstItem, 
 
    last : lastItem 
 
    }; 
 

 
return objOutput; 
 
} 
 

 
var display = firstAndLast(myArray); 
 

 
console.log(display);

更新:新的修改

var myArray = ['Rodel', 'Mike', 'Ronnie', 'Betus']; 
 

 
function firstAndLast(array) { 
 

 
var firstItem = myArray[0]; 
 
var lastItem = myArray[myArray.length-1]; 
 

 
var objOutput = {}; 
 
objOutput[firstItem]=lastItem 
 

 
return objOutput; 
 
} 
 

 
var display = firstAndLast(myArray); 
 

 
console.log(display);

+1

如果期望的输出是OP代码中的{{firstItem:lastItem}}所暗示的“{Rodel:”Betus“}? – nnnnnn

+0

@nnnnnn“我正在尝试获取数组中的第一个和最后一个项目,并将它们显示在一个对象中。” – Ashraf

+0

输出必须是{Rodel:“Betus”} –

0

要使您的firstlast属性按您的需要工作,请将它们定义为数组原型上带有“getters”的属性。

(你也有firstAndLastArraytransformFirstAndLast之间的矛盾,需要加以固定。)

返回{firstName: lastName}不会做你可能想要的东西,因为它会产生关键firstName。要使用实际的名字作为密钥,请使用computed property names{[firstName]: lastName})。

Object.defineProperties(Array.prototype, { 
 
    first: { get() { return this[0]; }}, 
 
    last: { get() { return this[this.length - 1]; }} 
 
}); 
 

 
var myArray = ['Rodel', 'Mike', 'Ronnie', 'Betus']; 
 

 
function firstAndLast(array) { 
 
    var firstItem = myArray.first; 
 
    var lastItem = myArray.last; 
 
    
 
    return {[firstItem]: lastItem}; 
 
} 
 

 
var display = firstAndLast(myArray); 
 

 
console.log(display);

或者更简单地说,只是

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

如果你不想或者不能,使用计算的属性名称,然后

function firstAndLast(array) { 
    var result = {}; 
    result[array[0]] = array[array.length - 1]; 
    return result; 
} 
+0

罗德尔:Bestus 不是“firstItem:Bestus” –

+0

OP说这一百万次 –

+2

@TyQ。如果我要求兰博基尼百万次,请你把它交给我? – zerkms

0

这样做: -

var myArray = ['Rodel', 'Mike', 'Ronnie', 'Betus']; 

function firstAndLast(myArr) { 

    var firstItem = myArr[0]; 
    var lastItem = myArr[myArr.length - 1]; 
    var objOutput = {}; 
    objOutput[firstItem] = lastItem; 
    return objOutput; 
} 

var display = firstAndLast(myArray); 

console.log(display); 
相关问题