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

无需转换为数组,删除Object中insertedRow=1的记录

解决方案

1. 修正类型定义(核心问题)

你的clickedRecords被错误定义为单个dType对象,但mGrid.getSelectedRows()返回的是数组类型。先修正类型:

// 将单个对象类型改为数组类型
clickedRecords?: dType[];

同时,dType中的insertedRow字段并非所有记录都存在(比如你提供的第一条数据没有该字段),建议改为可选属性避免类型报错:

export class dType{
    costRef?: string;
    insertedRow?: number; // 改为可选属性
}

2. 过滤insertedRow=1的记录

修正类型后,直接用数组的filter方法过滤即可,无需额外转换:

// 从state获取数据,默认空数组避免报错
const dto: dType[] = state.clickedRecords || [];
// 过滤掉insertedRow等于1的记录
const filteredRecords = dto.filter(record => record.insertedRow !== 1);

关于“转数组时数据全在第0位”的原因

之前你尝试转数组时出现异常,是因为clickedRecords被定义为单个对象,当你执行Array(state.clickedRecords)时,会把实际是数组的state.clickedRecords包装成一个新数组的第一个元素,导致所有数据集中在索引0。修正类型定义后就不会有这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 00:39:54