javascript - 将数组前一个对象分配给下一个元素并更新最后一个
问题描述
我需要我的应用程序需要将对象从前一个元素放置到下一个元素并更新最后一个元素。
我只是尝试分配,但它可能是错误的方式,因为它不起作用 - 值是垃圾
let coordinate=[{x:4, y:3} ,{x:4, y:4},{x:4, y:5},{x:4, y:6}];
for(let i=0;i<coordinate.length-2;++i){
coordinate[i]=coordinate[i+1];
}
++coordinate[coordinate.length-1].y;
console.log(coordinate);
我认为这在逻辑上是正确的,但也许我更新它的方式是错误的?
解决方案
如果我做对了,你想做这样的事情:删除第一个元素,然后推送一个新元素,它是最后一个元素的更新版本。
let coordinate=[{x:4, y:3} ,{x:4, y:4},{x:4, y:5},{x:4, y:6}];
coordinate.shift();
const lastElm = coordinate[coordinate.length - 1];
coordinate.push({
...lastElm,
y: lastElm.y + 1
});
console.log(coordinate);
推荐阅读
- javascript - 反应自定义多选不适用于外部阵列
- xml - Spring批量读取输入文件,其中包含日期和时间
- java - java - 如何将ffmpeg的输出通过管道传输到java中的ffplay?
- javascript - React 热键无法访问更新状态
- vue.js - 在vue js中有条件地绑定一个指令
- java - 杰克逊反序列化具有换行符的 Xml 元素作为 Java POJO 的值
- c++ - 访问 i+1 时出现无效向量下标错误
- c++ - 为什么我的函数代码中有一个模棱两可的地方,它计算十进制 n 的二进制表示中 1 的数量
- python - 为什么 gettext 会自动给我错误的翻译?
- swift - 无法分配给属性:“lowerBound”是一个“let”常量——在 UIView 中变为 let