我正在尝试获取数组中的第一个和最后一个项目并将它们显示在一个对象中。
我所做的是我使用第一个和最后一个函数,然后将第一个项目作为键,将最后一个项目作为值。
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 :(得分:11)
我修改了你的代码:
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 :(得分:1)
ES6
var objOutput = { [myArray[0]]: myArray.slice(-1)[0] }
var myArray = ['Rodel', 'Mike', 'Ronnie', 'Betus'];
var objOutput = { [myArray[0]]: myArray.slice(-1)[0] }
console.log(objOutput);
答案 2 :(得分:1)
使用ES6并进行销毁:
const myArray = ['Rodel', 'Mike', 'Ronnie', 'Betus'];
const { 0: first, length, [length -1]: last } = myArray //getting first and last el from array
const obj = { first, last }
console.log(obj) // { first: "Rodel", last: "Betus" }
答案 3 :(得分:0)
要使first
和last
属性按您的意愿运行,请使用" getters"将其定义为属性。在阵列原型上。
(firstAndLastArray
和transformFirstAndLast
之间也存在不一致,需要修复。)
返回{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;
}
答案 4 :(得分: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);
答案 5 :(得分:0)
嗯,我还有另外一个主意...例如:
const all = ['food', 'clean', 'cat', 'shower', 'work out']
console.log(`you have ${all.length} all!`)
console.log(`Todo: ${all[0]}`)
console.log(`Todo: ${all[all.length - 1]}`)
答案 6 :(得分:0)
试试这个来找出数组的第一个和最后一个值
var array = ['Rodel', 'Mike', 'Ronnie', 'Betus'];
let {0 : a ,[array.length - 1] : b} = array;
var objOutput = {
first : a,
last:b
};
console.log(objOutput)
答案 7 :(得分:0)
roli 答案的另一种变体
function firstAndLast(array) {
return { [[...array].shift()]: [...array].pop() };
}