You need to enable JavaScript to run this app. Immutable JS 如何将嵌套Map集合转换为指定结构List并提取name字段
优惠活动
大模型
产品
解决方案
定价
更多

Immutable JS 如何将嵌套Map集合转换为指定结构List并提取name字段

实现方案

你可以直接基于Immutable自身的遍历和更新方法完成转换,无需先转成普通JS对象处理,示例代码如下:

import { fromJS } from 'immutable';

// 你已经通过fromJS转换完成的Immutable结构数据
const immutableData = fromJS([
  {name: 'john', surname: 'smith', children: [{name: 'sam'}, {name: 'ben'}]},
  {name: 'jane', surname: 'jones', children: [{name: 'tim'}, {name: 'amy'}]}
]);

// 核心处理逻辑
const result = immutableData.map(userItem => {
  // 提取children数组中每个对象的name字段
  const simplifiedChildren = userItem.get('children').map(child => child.get('name'));
  // 替换原children字段,返回新的Immutable对象
  return userItem.set('children', simplifiedChildren);
});

// 如果需要得到普通JS格式的结果,调用toJS即可
const plainResult = result.toJS();

逻辑说明

  • 外层遍历immutableData这个Immutable List,拿到每一条用户数据(Immutable Map格式)
  • 对每条用户数据的children字段做二次遍历,提取所有子项的name属性,生成仅包含字符串的新Immutable List
  • 调用set方法更新原用户数据的children字段,Immutable的不可变特性会自动返回全新的结构,不会修改原始数据
  • 如果后续业务需要使用普通JS对象操作,直接调用处理后结构的toJS()方法就能得到你要求的目标格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 17:24:00