diff --git a/docs/docs/api/model/node-children.md b/docs/docs/api/model/node-children.md
index 10488a733..219e6bbc1 100644
--- a/docs/docs/api/model/node-children.md
+++ b/docs/docs/api/model/node-children.md
@@ -156,6 +156,21 @@ forEach(fn: (node: IPublicModelNode, index: number) => void): void;
 
 相关类型:[IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts)
 
+### reverse
+
+类似数组的 reverse
+
+```typescript
+/**
+ * 类似数组的 reverse
+ * provide the same function with {Array.prototype.reverse}
+ */
+reverse(): IPublicModelNode[];
+
+```
+
+相关类型:[IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts)
+
 
 ### map
 
diff --git a/packages/designer/src/document/node/node-children.ts b/packages/designer/src/document/node/node-children.ts
index d370a797b..12a9e75ba 100644
--- a/packages/designer/src/document/node/node-children.ts
+++ b/packages/designer/src/document/node/node-children.ts
@@ -54,6 +54,8 @@ export interface INodeChildren extends Omit<IPublicModelNodeChildren, 'forEach'
 
   reduce(fn: (acc: any, cur: INode) => any, initialValue: any): void;
 
+  reverse(): INode[];
+
   mergeChildren(
     remover: (node: INode, idx: number) => boolean,
     adder: (children: INode[]) => IPublicTypeNodeData[] | null,
@@ -442,6 +444,10 @@ export class NodeChildren implements INodeChildren {
     return this.children.reduce(fn, initialValue);
   }
 
+  reverse() {
+    return this.children.reverse();
+  }
+
   mergeChildren(
     remover: (node: INode, idx: number) => boolean,
     adder: (children: INode[]) => IPublicTypeNodeData[] | null,
diff --git a/packages/shell/src/model/node-children.ts b/packages/shell/src/model/node-children.ts
index 0192268bc..4d1cc0a22 100644
--- a/packages/shell/src/model/node-children.ts
+++ b/packages/shell/src/model/node-children.ts
@@ -129,6 +129,15 @@ export class NodeChildren implements IPublicModelNodeChildren {
     });
   }
 
+  /**
+   * 类似数组的 reverse
+   */
+  reverse(): IPublicModelNode[] {
+    return this[nodeChildrenSymbol].reverse().map(d => {
+      return ShellNode.create(d)!;
+    });
+  }
+
   /**
    * 类似数组的 map
    * @param fn
diff --git a/packages/types/src/shell/model/node-children.ts b/packages/types/src/shell/model/node-children.ts
index d18bf78a3..0379194bf 100644
--- a/packages/types/src/shell/model/node-children.ts
+++ b/packages/types/src/shell/model/node-children.ts
@@ -96,6 +96,12 @@ export interface IPublicModelNodeChildren {
    */
   forEach(fn: (node: IPublicModelNode, index: number) => void): void;
 
+  /**
+   * 类似数组的 reverse
+   * provide the same function with {Array.prototype.reverse}
+   */
+  reverse(): IPublicModelNode[];
+
   /**
    * 类似数组的 map
    * provide the same function with {Array.prototype.map}