如何使用自定义关系获取数组项?

3

我有一个数组,其中包含三个项目,这些项目通过一个称为 bound_id 的引用属性相互关联,这是该数组:

[
   { id: "1", option: { bound_id: "2" }},
   { id: "2", option: { bound_id: "12" }},
   { id: "12", option: { bound_id: "2" }}
]

正如您所看到的,具有id 1 的项目与具有id 2 的项目链接在一起,而项目 2 则链接到项目 12

现在,假设我将项目 1bound_id 值更改为 null

[
   { id: "1", option: { bound_id: null }},
   { id: "2", option: { bound_id: "12" }},
   { id: "12", option: { bound_id: "2" }}
]

如何返回所有未彼此链接的项目?预期结果应如下所示:
[
   { id: "2", option: { bound_id: "12" }}
   { id: "12", option: { bound_id: "2" }}
]

这意味着数组中的下一项与当前id没有关联,因此如果关系被打破,结果需要返回所有不再适合该关系的项。如何实现这一点?
1个回答

2
你可以使用 filter 方法来删除所有绑定 ID 设置为 null 的项。"Original Answer" 的翻译是 "最初的回答"。

const input = [
   { id: "1", option: { bound_id: null }},
   { id: "2", option: { bound_id: "12" }},
   { id: "12", option: { bound_id: "2" }}
];

const output = input.filter(a => a.option.bound_id);

console.log(output);


这似乎可以工作,是否也可能指定以防止插入第一项?第一项必须是可用的偶数。 - teres
@teres 抱歉,我不理解你的问题。你能否再进一步澄清一下?这个答案只是过滤掉所有具有 bound_id 值的对象。 - adiga
我的意思是:如果input中只有一个值,那么output也会包括这个唯一的项目,这是不正确的。我猜更好的实现方式是将所有没有关系但是遵循具有破碎关系的项目添加到该项目之后,例如:如果关系被ID 2打破,则不应在output中包括ID 1,而仅包括ID 12,明白了吗? - teres

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接