我有这个输出on the Playground:
[1、2、3]
[未定义,未定义,未定义]
我只想用5替换第二个元素。这是我的代码:
Program.ts
import { Utils } from "./Utils";
class Program
{
public static Main(): void
{
let array = [1, 2, 3];
console.log(array);
let array2 = Utils.ArrayModify(array, 1, 5);
console.log(array2);
}
}
Program.Main();
Units.ts
export class Utils
{
public static ArrayModify<U>(array: U[], index: number, newValue: U)
{
return array.map((oldValue: U, currentIndex: number) =>
{
currentIndex === index ? newValue : oldValue;
});
}
}
array.map 返回void []类型,但我需要U []。
答案 0 :(得分:2)
您忘记了return
:
return currentIndex === index ? newValue : oldValue;
答案 1 :(得分:0)
如另一篇文章中所述,没有返回值,而且因为数组只是javascript中的对象,所以上面的代码可以重新写入。
export class Utils
{
public static ArrayModify<U>(array: U[], index: number, newValue: U): U[]
{
return Object.assign([], array, {[index]: newValue});
}
}