当nodeList长度为2的时候 obj= _tableArray[nodeList[0]].children[nodeList[1]] ;以此类推如何用循环去写 let editIndex = '0_1',let editIndex = '0_1_1',let editIndex = '0_1_1_2'代码如下let nodeList = editIndex.split('_')let obj = {}if(nodeList.length == 2){ obj= _tableArray[nodeList[0]].children[nodeList[1]] }if(nodeList.length == 3){ obj= _tableArray[nodeList[0]].children[nodeList[1]].children[nodeList[2]] }if(nodeList.length == 4){ obj= _tableArray[nodeList[0]].children[nodeList[1]].children[nodeList[2]].children[nodeList[3]] }
预期结果:用循环去写,现在是写死的,当长度是2的时候是obj= _tableArray[nodeList[0]].children[nodeList[1]]
nodeList.reduce((p, c) => p.children[c], { children: _tableArray })
测试:
const _tableArray: any[] = [], nodeList = [0, 1, 2, 3]nodeList.forEach((_, i) => (_tableArray[i] = { children: _tableArray, i }))const o2 = _tableArray[nodeList[0]].children[nodeList[1]], o3 = _tableArray[nodeList[0]].children[nodeList[1]].children[nodeList[2]], o4 = _tableArray[nodeList[0]].children[nodeList[1]].children[nodeList[2]] .children[nodeList[3]], getN = (n: number) => nodeList .slice(0, n) .reduce((p, c) => p.children[c], { children: _tableArray, i: undefined }) .iconsole.assert(o2.i === getN(2), '2')console.assert(o3.i === getN(3), '3')console.assert(o4.i === getN(4), '4')
你可以使用递归来动态地构建这个对象路径。首先,你可以定义一个递归函数,该函数会接收当前的对象和路径的下一个索引作为参数。然后,它会检查是否还有更多的索引需要处理,如果有,就递归地调用自身,否则返回当前的对象。
下面是一个使用 JavaScript 实现的示例:
function getObj(obj, indices) { let current = obj; for (let i = 0; i < indices.length; i++) { current = current.children[indices[i]]; } return current;}let editIndex = '0_1_1_2';let nodeList = editIndex.split('_');let _tableArray = { // 你的_tableArray数据};let obj = getObj(_tableArray, nodeList);
在这个示例中,getObj
函数会遍历 indices
数组中的每个索引,并使用这些索引从 obj
中获取子对象。当遍历完所有的索引后,它就会返回最终的对象。
请注意,这个示例假设 _tableArray
和其所有子对象都有 children
属性,并且 nodeList
中的每个索引都是有效的。如果这些假设不成立,你可能需要添加一些额外的错误检查和处理逻辑。
我正在尝试在我的java spring项目中的swagger定义中添加新的属性。我已阅读文档并特别 https://springfox.github.io/springfox/docs/snapshot/#plugins 例如,我有这个定义: 我想要: 你能帮我在定义中添加meteo属性吗?在本例中,我的目标是以编程方式添加attribute,而不使用注释。
我想在Angular 7中动态添加div属性。 我尝试了这个: 我有一个错误: 未捕获的错误:模板分析错误:无法绑定到“code ”,因为它不是“div”的已知属性。(" *ngFor="let e of etats。_ embedded . Etats " style = " background:{ { e . codecouleur } }!重要;“[错误-
本文向大家介绍js中动态创建json,动态为json添加属性、属性值的实例,包括了js中动态创建json,动态为json添加属性、属性值的实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 在js中,一个[]认为是数组;{}认为是Json对象; var json = {}; 定义一个Json对象; 为Json对象赋值: json[aa] = "xx"; eval 解析json报错 提示缺少“
问题内容: 目标是创建一个行为类似db结果集的模拟类。 因此,例如,如果数据库查询使用表达式返回,那么我想看看: 刚开始我以为我可以这样做: 但返回一个属性对象。 用替换该行根本没有用。 那么在运行时创建实例属性的正确方法是什么? 问题答案: 我想我应该扩大这个答案,因为我年纪大一些并且比较聪明,并且知道发生了什么事。迟到总比不到好。 你可以动态地向类添加属性。但这很重要:你必须将其添加到类中。
问题内容: 嗨:在我们的应用程序中,我们已经从数据库中检索了一些数据,例如,表中包含以下字段:id,名称,年龄,地址,电子邮件。 然后,我们将根据客户提供一些这些属性。 如果客户需要ID,名称,我们将获得ID名称;如果客户需要ID,名称,年龄,则将获得ID,名称,年龄。 现在,我们想创建一个包装这些属性的类。但是,我们不知道确切要求哪个字段。 我可以在这里用Class替换地图吗? 问题答案: 如果
本文向大家介绍JS实现给对象动态添加属性的方法,包括了JS实现给对象动态添加属性的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现给对象动态添加属性的方法。分享给大家供大家参考,具体如下: 在工作用要用到给jd对象动态添加属性的要求,在网上找到了一种解决方式,实例如下: 1、demo 这种方式试过确实可以 2、项目中使用 遍历input获取值,js对象动态添加属性和属性值。 更