gpt4 book ai didi

javascript - 如何统一两个相似的数组声明

转载 作者:行者123 更新时间:2023-12-01 02:05:23 25 4
gpt4 key购买 nike

我有两个类似的数组声明:

allFalseOrTrue: any[] = [{'id': -1, 'name': 'All'}, {'id': 0, 'name': 'No'}, {'id': 1, 'name': 'Yes'}];
bothFalseOrTrue: any[] = [{'id': -1, 'name': 'Both'}, {'id': 0, 'name': 'No'}, {'id': 1, 'name': 'Yes'}];

您建议统一数组吗?

我的意思是我想要某种基本的东西,我可以用它来构造我的另外两个类似的数组以避免复制粘贴。假设我有类似源数组枚举之类的东西,并且仅基于它就能够构造我的其他数组。

最佳答案

如何使用函数来创建数组:

type Name = "All" | "Both" | "No" | "Yes";

function createOptions(...names: Name[]) {
return names.map((name, i) => ({ id: i - 1, name }));
}

const all_no_yes = createOptions("All", "No", "Yes");
const both_no_yes = createOptions("Both", "No", "Yes");

或者您可以创建一个数组并过滤到您想要的数组:

const all = [{ id: -1, name: "All" }, { id: -1, name: "Both" }, { id: 0, name: "No" }, { id: 1, name: "Yes" }];

const all_no_yes = all.filter(item => item.name != "Both");
const both_no_yes = all.filter(item => item.name != "All");

另请注意,使用 any[] 会模糊类型,如果您允许推断类型(如上所述,没有类型注释),您将获得具有形状 的项目的数组{ id, name },哪个更好。

关于javascript - 如何统一两个相似的数组声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50146344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com