You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在React-Typescript中将字符串数组转为指定键值对对象

在React-TypeScript中将字符串数组转换为键值为true的对象

问题描述

我有一个字符串数组,需要将其转换为每个键对应值为true的键值对对象,示例如下:

期望输出:

const output = { string1: true, string2: true, string3: true };

示例输入:

const strarray = ["string1","string2","string3"];

以下是几种在React-TypeScript中实现该转换的常用方法:


方法1:使用Array.reduce()

这是处理数组转对象的经典方式,TypeScript可自动推导类型:

const strarray = ["string1", "string2", "string3"];

const output = strarray.reduce((acc, curr) => {
  acc[curr] = true;
  return acc;
}, {} as Record<string, boolean>);

通过Record<string, boolean>指定初始空对象的类型,确保TypeScript识别最终对象的键为字符串、值为布尔值。

方法2:使用Object.fromEntries()

ES2019引入的API,写法更简洁直观:

const strarray = ["string1", "string2", "string3"];

const output = Object.fromEntries(
  strarray.map(item => [item, true])
) as Record<string, boolean>;

先将数组元素转换为[键, 值]格式的二维数组,再通过Object.fromEntries()直接转换为目标对象。

方法3:手动遍历(基础逻辑演示)

如果需要更直观的实现逻辑,可使用for循环:

const strarray = ["string1", "string2", "string3"];
const output: Record<string, boolean> = {};

for (const item of strarray) {
  output[item] = true;
}

先初始化指定类型的空对象,再遍历数组为每个键赋值true。


可选:精确类型推导

如果你的字符串数组是固定字面量数组,可让TypeScript推导更精确的键类型:

const strarray = ["string1", "string2", "string3"] as const;
type StrKeys = typeof strarray[number];

const output: Record<StrKeys, boolean> = strarray.reduce((acc, curr) => {
  acc[curr] = true;
  return acc;
}, {} as Record<StrKeys, boolean>);

此时output的类型会被精确推断为{ string1: boolean; string2: boolean; string3: boolean },而非宽泛的Record<string, boolean>。

内容的提问来源于stack exchange,提问作者Somashekhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 04:52:04