如何在不保存对数组的引用的情况下创建一个有数组值的对象?

问题描述 投票:0回答:1

换句话说,我怎样才能将

// an array of length >= 3
let myArray = returnOfSomeParametricFunction(); // assuming repeating rhs removes dryness

let myObj = { staticKeyName: myArray[1], anotherStaticKeyName: myArray[2] };

变成单行线。也许是这样的。

let myObj = returnOfSomeParametricFunction().reduce(arr=> { staticKeyName: arr[1], anotherStaticKeyName: arr[2] };
javascript arrays typescript type-conversion aggregate
1个回答
1
投票

在这种情况下,如果我需要在一行中完成,而不是在同一范围内引入一个新的变量,那么我就需要 myObj如果我不在乎可读性,我会用这样的箭头函数。

let myObj = (a => ({ staticKeyName: a[1], anotherStaticKeyName: a[2] }))(
  returnOfSomeParametricFunction());

你可以验证 myObj 具有正确类型的属性。 例如,给定

declare function returnOfSomeParametricFunction(): [Date, number, string];

然后 myObj 会有类型。

/*
let myObj: {
    staticKeyName: number;
    anotherStaticKeyName: string;
}
*/

好的,希望能帮到你;祝你好运!

游戏场链接到代码

© www.soinside.com 2019 - 2024. All rights reserved.