Skip to content

Commit 1f09b63

Browse files
liujupingJackLian
authored andcommitted
feat: add reverse api to node-children model
1 parent 319d495 commit 1f09b63

4 files changed

Lines changed: 36 additions & 0 deletions

File tree

docs/docs/api/model/node-children.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,21 @@ forEach(fn: (node: IPublicModelNode, index: number) => void): void;
156156
157157
相关类型:[IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts)
158158
159+
### reverse
160+
161+
类似数组的 reverse
162+
163+
```typescript
164+
/**
165+
* 类似数组的 reverse
166+
* provide the same function with {Array.prototype.reverse}
167+
*/
168+
reverse(): IPublicModelNode[];
169+
170+
```
171+
172+
相关类型:[IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts)
173+
159174
160175
### map
161176

packages/designer/src/document/node/node-children.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ export interface INodeChildren extends Omit<IPublicModelNodeChildren, 'forEach'
5454

5555
reduce(fn: (acc: any, cur: INode) => any, initialValue: any): void;
5656

57+
reverse(): INode[];
58+
5759
mergeChildren(
5860
remover: (node: INode, idx: number) => boolean,
5961
adder: (children: INode[]) => IPublicTypeNodeData[] | null,
@@ -442,6 +444,10 @@ export class NodeChildren implements INodeChildren {
442444
return this.children.reduce(fn, initialValue);
443445
}
444446

447+
reverse() {
448+
return this.children.reverse();
449+
}
450+
445451
mergeChildren(
446452
remover: (node: INode, idx: number) => boolean,
447453
adder: (children: INode[]) => IPublicTypeNodeData[] | null,

packages/shell/src/model/node-children.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,15 @@ export class NodeChildren implements IPublicModelNodeChildren {
129129
});
130130
}
131131

132+
/**
133+
* 类似数组的 reverse
134+
*/
135+
reverse(): IPublicModelNode[] {
136+
return this[nodeChildrenSymbol].reverse().map(d => {
137+
return ShellNode.create(d)!;
138+
});
139+
}
140+
132141
/**
133142
* 类似数组的 map
134143
* @param fn

packages/types/src/shell/model/node-children.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ export interface IPublicModelNodeChildren {
9696
*/
9797
forEach(fn: (node: IPublicModelNode, index: number) => void): void;
9898

99+
/**
100+
* 类似数组的 reverse
101+
* provide the same function with {Array.prototype.reverse}
102+
*/
103+
reverse(): IPublicModelNode[];
104+
99105
/**
100106
* 类似数组的 map
101107
* provide the same function with {Array.prototype.map}

0 commit comments

Comments
 (0)