我需要获取给定数组中的第一个和最后一个元素,并返回一个对象,其中第一个元素作为键,最后一个元素作为值。
这是我的代码:
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。
答案 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));