【发布时间】:2021-09-14 15:58:18
【问题描述】:
我有一个名为 obj.credits: [] 的对象或 json 数组,其中包含大约 50 个信用对象。每个 credit 对象都有一个 cast_id 字段,该字段为空或非空
我想将所有具有 null cast_id 的对象完全过滤到子数组 obj.credits.crew: [] 中,并将所有不为 null cast_id 的对象过滤到另一个子数组 obj.credits.cast: [] 中。
之后obj.credits 应该只包含键cast 和crew。
以下操作无效。它创建子数组但不删除原始数组对象
obj.credits.cast = obj.credits.filter(credit => credit.cast_id != null)
obj.credits.crew = obj.credits.filter(credit => credit.cast_id == null)
【问题讨论】:
-
请提供minimal reproducible example。 “不工作”是什么意思?
-
我不确定数组如何添加两个属性。好像有点奇怪,为什么不新建一个对象呢?
-
“不工作”我的意思是它创建了两个子数组,但原始数组项没有被删除。假设总共有 50 个对象,其中 25 个为空
cast_id,其他 25 个不为空cast_id -
因为它是一个数组,而不是一个对象。如果您不想要该数组,请将其替换为对象。
-
过滤器不会改变原始数组。你也不能做 newArray.x = 123;其中 newArray 是一个数组。
标签: javascript arrays ecmascript-6 filter reduce