gpt4 book ai didi

javascript - 德克西 : How to add to array in nested object

转载 作者:行者123 更新时间:2023-11-30 11:34:49 25 4
gpt4 key购买 nike

我正在使用 Dexie IndexedDB 包装器,并且尝试将一个对象添加到嵌套对象内的现有数组中。结构如下所示

{ 
Name : 'John',
age : 33,
tags : {
skill: [{
first: '.NET',
second: 'JAVA',
third: [{special1:'sleep'},{special2:'eat'}]
}]
}
}

我尝试了很多方法将对象special3:'run'推送到skill.third但没有成功。我上次的尝试看起来像这样

    const pathObject = {};
const fullPath = 'result.tags.skill[3].third';
pathObject[fullPath] = {special3:'run'};
db.inspections.update(id, pathObject);

该对象被添加到数组“third”的外部而不是内部,如下所示

{ 
Name : 'John',
age : 33,
tags : {
skill: [{
first: '.NET',
second: 'JAVA',
third: [{special1:'sleep'},{special2:'eat'}]
}]
skill[3]: {
third: {special3:'run'}
}
}
}

我想知道是否有一种方法可以使用 Dexie 添加到嵌套对象中的数组,如果没有,是否有一种方法可以使用 indexeddb 来实现此目的。感谢帮助,因为问题阻碍了进展

最佳答案

最简单的方法是使用 Collection.modify() 和回调函数来改变模型:

db.inspections.where('id').equals(id).modify(x =>
x.tags.skill[0].third.push({special3:'run'}) );

如果您想使用包含数组项的键路径,也是可以的,因为数组可以被视为带有数字键的对象:

db.inspections.update(id, {"tags.skill.0.third.3": {special3:'run'}});

关于javascript - 德克西 : How to add to array in nested object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44907820/

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