微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在具有特定属性的数组中的其他对象之前插入数组中的对象

如何解决在具有特定属性的数组中的其他对象之前插入数组中的对象

我有一个带有对象的数组。所有对象都有一个唯一的 id。现在我想在具有特定 id 的对象之前插入一个新对象。为此,我得到了这个对象:

{"topic":"add","payload":{"id":1,"end":"24:00","temp":21,"add":0,"delete":0},"row":-1,"socketid":"SSZY-1C3jiP8-NS2AAAB","_msgid":"a891f409.e30038"}

现在我需要在这个带有 id 的数组中找到这个对象:

[{"woche":"Montag","status":0,"_children":[{"id":1,"delete":0}]},{"woche":"Dienstag","vortag":1,"_children":[{"id":2,{"woche":"Mittwoch","start":"","_children":[{"id":3,{"woche":"Donnerstag","_children":[{"id":4,{"woche":"Freitag","_children":[{"id":5,{"woche":"Samstag","_children":[{"id":6,{"woche":"Sonntag","_children":[{"id":7,"delete":0}]}]

现在我想在具有匹配 id 的对象之前插入一个新对象。

如何找到数组中的位置以及如何添加此对象?

{"id":`${++Id}`,"end":"","delete":0}

最后应该是这样的:

[{"woche":"Montag","_children":[{"id":"8",{"id":1,"delete":0}]}]

解决方法

您可以使用 filter 方法来检查特定元素的索引。

假设这是您的数组:

let arr = [{"woche":"Montag","status":0,"_children":[{"id":1,"end":"24:00","temp":21,"add":0,"delete":0}]},{"woche":"Dienstag","vortag":1,"_children":[{"id":2,{"woche":"Mittwoch","start":"","_children":[{"id":3,{"woche":"Donnerstag","_children":[{"id":4,{"woche":"Freitag","_children":[{"id":5,{"woche":"Samstag","_children":[{"id":6,{"woche":"Sonntag","_children":[{"id":7,"delete":0}]}]

你需要在数组中搜索这个对象的索引:

let s = {"topic":"add","payload":{"id":1,"delete":0},"row":-1,"socketid":"SSZY-1C3jiP8-NS2AAAB","_msgid":"a891f409.e30038"}

您可以使用以下查询来实现此目的:

let index = -1
arr.filter((o) => {
    if(s.payload.id === o._children[0].id) {
        index = arr.indexOf(o)
    }
    return o
})

您可以使用 splice 方法在数组中的特定索引处添加新对象。

arr.splice(index,<value to enter in array>)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。