gpt4 book ai didi

javascript - 操作对象数组时出现 TS2345 错误

转载 作者:行者123 更新时间:2023-12-02 13:48:36 25 4
gpt4 key购买 nike

假设我有一个看起来像这样的数组:

let arr = [{field: ["alice"]}, {field : ["bob", "charlie"]}

我希望能够连接所有值,而无需编写嵌套的 for循环。到目前为止我已经这样做了:

arr.reduce((a, b) => a.field.concat(b.field))

正如我所见,问题在于数组的类型,比如说 arr : Array<MyObject> ,在映射或类似操作时会发生变化。

我收到 TS2345 错误

...Is not assignable to parameter of type...

为了澄清问题,结果应该与以下结果相同。

let result = [];
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr[i].field.length; j++) {
result.push(arr[i].field[j])
}
}

抱歉,我无法分享我的真实代码,但这正是问题所在。由于某种原因,这适用于 Chrome 的开发人员工具,但当我尝试编译代码时却不起作用。

最佳答案

const arr: Array<MyObject> = [{ field: ["alice"] }, { field: ["bob", "charlie"] }];

const result: Array<string> = arr.map(obj => obj.field)
.reduce((a, b) => a.concat(b));

关于javascript - 操作对象数组时出现 TS2345 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41174212/

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