下面的代码是否有更好的方法。我的代码正在运行,但是我只是想知道是否有更好的方法。 我有一个数组,我想将此数组中的最后一个项目返回到第一个位置。
const replce = arr => {
let n = arr.pop();
arr.splice(0, 0, n);
return arr;
};
console.log(replce(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']));
答案 0 :(得分:3)
您可以将 Pop 与 destructing 一起使用。
let arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
let last = arr.pop()
let final = [last,...arr]
console.log(final)
答案 1 :(得分:2)
const replce = arr => {
return arr.unshift(arr.pop()) && arr;
};
console.log(replce(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']));
又矮又甜。
答案 2 :(得分:1)
可以在一个解构表达式中交换两个变量值。请参考文档 Destructuring assignment
var arr = ['a', 'b', 'c', 'd','e','f','g','h'];
[arr[0], arr[arr.length-1]] = [arr[arr.length-1], arr[0]];
console.log(arr);
答案 3 :(得分:0)
答案 4 :(得分:0)
unshift()将添加到数组的开头,而pop()将从数组的末尾删除。下面的示例将向您展示如何执行此操作。
const replace = arr =>{
let tempvalue = arr.pop();
arr.unshift(tempvalue);
return arr;
}
console.log(replace(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']));
由于尚未测试速度,因此不确定是否可以更好地称呼它,但它更易于阅读。
答案 5 :(得分:0)
let arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'];
console.log(arr);
arr = arr.reverse();
console.log(arr);
答案 6 :(得分:0)
您还可以使用此逻辑从阵列中删除最后一个项目,并将该项目放置到第一个位置。
private void Update()
{
var targetPosition = pointA ? pointOne.position : pointTwo.position;
if (transform.position == targetPosition)
{
// invert pointA
pointA = !pointA;
// also update the targetPosition
targetPosition = pointA ? pointOne.position : pointTwo.position;
}
// move towards the target using Time.deltaTime
transform.position = Vector2.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
// actually you could get rid of this flag as well
// since it always has the same value as pointA
goingRight = pointA;
anim.Play(goingRight ? animRight : animLeft);
}