Javascript 修改数组内的值

Javascript 修改数组内的值,javascript,Javascript,我用以下方法创建一个数组: const[…mg_dx]=[0,2,4].map(index=>buf.readInt16LE(index)); this.arrayMgDx.push([this.timeS,…mg_dx].join(“:”) 在这里我放置了时间戳和值 结果如下: “-26416:393:333:574”, "-26336:393:332:573", "-26296:393:332:573", "-26296:395:333:574", "-26276:396:333:574"

我用以下方法创建一个数组:

const[…mg_dx]=[0,2,4].map(index=>buf.readInt16LE(index));
this.arrayMgDx.push([this.timeS,…mg_dx].join(“:”)
在这里我放置了时间戳和值

结果如下:

“-26416:393:333:574”,
"-26336:393:332:573",
"-26296:393:332:573",
"-26296:395:333:574",
"-26276:396:333:574",
"-26236:396:332:574",
"-26216:396:332:576",
我要做的是为数组更改每行的第一个值(-26416,-26336,-26296…),从0开始,每行递增20,如下所示:

“0:393:333:574”,
"20:393:332:573",
"40:393:332:573",
"60:395:333:574",
"80:396:333:574",
"100:396:332:574",
"120:396:332:576",
我该怎么做呢?

您可以使用
.map()
来实现:

const input=[“-26416:393:333:574”,
"-26336:393:332:573",
"-26296:393:332:573",
"-26296:395:333:574",
"-26276:396:333:574",
"-26236:396:332:574",
"-26216:396:332:576"]
常量输出=输入.map((行,索引)=>{
//此处的阵列分解:
//如果我们这样做:
//常数[第一,…部分]=[0,1,2,3];
//然后'first'保存该数组的第一个元素,即'0'`
//“parts”保存数组的其余部分,即“[1,2,3]”;
//这里有两种技术:数组分解和rest参数
常量[第一,…部分]=行分割(':');
返回`${index*20}:${parts.join(':')}`;
});
控制台日志(输出)您可以使用
.map()
进行以下操作:

const input=[“-26416:393:333:574”,
"-26336:393:332:573",
"-26296:393:332:573",
"-26296:395:333:574",
"-26276:396:333:574",
"-26236:396:332:574",
"-26216:396:332:576"]
常量输出=输入.map((行,索引)=>{
//此处的阵列分解:
//如果我们这样做:
//常数[第一,…部分]=[0,1,2,3];
//然后'first'保存该数组的第一个元素,即'0'`
//“parts”保存数组的其余部分,即“[1,2,3]”;
//这里有两种技术:数组分解和rest参数
常量[第一,…部分]=行分割(':');
返回`${index*20}:${parts.join(':')}`;
});

控制台日志(输出)可以使用以下正则表达式替换每个值

/^-\d+/

let值=[
"-26416:393:333:574",
"-26336:393:332:573",
"-26296:393:332:573",
"-26296:395:333:574",
"-26276:396:333:574",
"-26236:396:332:574",
"-26216:396:332:576"
]

log(values.map((value,index)=>value.replace(/^-\d+/,index*20))可以使用以下正则表达式替换每个值

/^-\d+/

let值=[
"-26416:393:333:574",
"-26336:393:332:573",
"-26296:393:332:573",
"-26296:395:333:574",
"-26276:396:333:574",
"-26236:396:332:574",
"-26216:396:332:576"
]
log(values.map((value,index)=>value.replace(/^-\d+/,index*20))您可以使用
slice()
indexOf()

让arr=[
"-26416:393:333:574",
"-26336:393:332:573",
"-26296:393:332:573",
"-26296:395:333:574",
"-26276:396:333:574",
"-26236:396:332:574",
"-26216:396:332:576"
];
log(arr.map((str,i)=>i*20+str.slice(str.indexOf(':'),-1))您可以使用
slice()
indexOf()

让arr=[
"-26416:393:333:574",
"-26336:393:332:573",
"-26296:393:332:573",
"-26296:395:333:574",
"-26276:396:333:574",
"-26236:396:332:574",
"-26216:396:332:576"
];

log(arr.map((str,i)=>i*20+str.slice(str.indexOf(':'),-1))
我想你应该知道,
const[…mg\u dx]=array
const mg\u dx=array
是一样的:)我想你应该知道,
const[…mg\u dx]=array
const mg\u dx=array
是一样的:)谢谢你的回答,你能给我解释一下第一部分和第二部分吗?这是一个数组分解,我会添加一个注释来解释谢谢你的回答,你能给我解释一下第一部分和第二部分吗?这是一个数组分解,我会添加一个注释来解释谢谢!一个问题,用这个方法我只选择第一个值,当它是负数??因为我对这两个(加号或减号)都感兴趣@Jack23只需修改模式:
/^([+-])?\d+/
以获取可选的
+
-
。谢谢!一个问题,用这个方法我只选择第一个值,当它是负数??因为我对两个(加号或减号)都感兴趣@Jack23只需修改模式:
/^([+-])?\d+/
以获取可选的
+
-