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

如何使用Date类型的useState Hook将对象数组处理为新的一维数组

实现方案

首先你给出的示例为对象数组,要提取所有对象的属性值生成一维数组,结合Date类型的useState Hook实现逻辑如下:

  • 核心转换逻辑使用Array.prototype.flatMap()搭配Object.values()即可完成,无需额外遍历:
// 补全合法的初始对象数组,原示例缺少属性值属于语法错误
const arr = [{a: 1, b: 2}, {c: 3, d: 4}, {e: 5, f: 6}];
const flattenedArr = arr.flatMap(item => Object.values(item));
// 输出结果:[1, 2, 3, 4, 5, 6]
  • 结合React中Date类型的useState完整实现(TypeScript场景):
import { useState, useEffect } from 'react';

function DemoComponent() {
  // 声明类型为Date的state
  const [currentDate, setCurrentDate] = useState<Date>(new Date());
  const arr = [{a: 1, b: 2}, {c: 3, d: 4}, {e: 5, f: 6}];
  const flattenedArr = arr.flatMap(item => Object.values(item));

  // 若需要在日期状态变化时触发转换逻辑,可放入useEffect监听
  useEffect(() => {
    console.log('日期变化后重新计算的扁平化数组:', flattenedArr);
  }, [currentDate])

  return (
    <div>
      <button onClick={() => setCurrentDate(new Date())}>更新日期</button>
      <p>扁平化结果:{JSON.stringify(flattenedArr)}</p>
    </div>
  )
}

提示:如果你的运行环境不支持flatMap方法,可以替换为arr.map(item => Object.values(item)).flat()实现相同效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:48:03