Skip to content

insertAfter

在数组中指定元素之后插入新数据

⚠️ 破坏性变更:从 v0.20.0 起,insertItemsAfterTarget(v0.15.0) 更名为 insertAfter,原函数已废弃

引入版本

0.20.0

Demo

ts
import { insertAfter } from '@wyfex/iutils'

const data = [
  { id: 1, name: '张三' },
  { id: 2, name: '李四' },
  { id: 3, name: '王五' }
]

/**
 * ================== 1. 单个插入 通过 id ==================
 */
const r1 = insertAfter(data, { id: 2 }, { id: 4, name: '赵六' })
console.log(JSON.stringify(r1, null, 2))
// [
//   {
//     "id": 1,
//     "name": "张三"
//   },
//   {
//     "id": 2,
//     "name": "李四"
//   },
//   {
//     "id": 4,
//     "name": "赵六"
//   },
//   {
//     "id": 3,
//     "name": "王五"
//   }
// ]

/**
 * ================== 2. 批量插入 通过 name ==================
 */
const r2 = insertAfter(data, { name: '张三' }, [
  { id: 11, name: '子1' },
  { id: 12, name: '子2' }
])
console.log(JSON.stringify(r2, null, 2))
// [
//   {
//     "id": 1,
//     "name": "张三"
//   },
//   {
//     "id": 11,
//     "name": "子1"
//   },
//   {
//     "id": 12,
//     "name": "子2"
//   },
//   {
//     "id": 2,
//     "name": "李四"
//   },
//   {
//     "id": 3,
//     "name": "王五"
//   }
// ]

/**
 * ================== 3. 边界:空数组 ==================
 */
const r3 = insertAfter([], { id: 1 }, { id: 2 })
console.log(r3) // []

/**
 * ================== 4. 边界:target 不存在 ==================
 */
const r4 = insertAfter(data, { id: 999 }, { id: 6 })
console.log(JSON.stringify(r4, null, 2))
// [
//   {
//     "id": 1,
//     "name": "张三"
//   },
//   {
//     "id": 2,
//     "name": "李四"
//   },
//   {
//     "id": 3,
//     "name": "王五"
//   }
// ]

/**
 * ================== 5. 异常:target 为空对象 ==================
 */
const r5 = insertAfter(data, {}, { id: 7 })
console.log(JSON.stringify(r5, null, 2))
// [
//   {
//     "id": 1,
//     "name": "张三"
//   },
//   {
//     "id": 2,
//     "name": "李四"
//   },
//   {
//     "id": 3,
//     "name": "王五"
//   }
// ]

/**
 * ================== 6. 异常:target value 为 undefined ==================
 */
const r6 = insertAfter(data, { id: undefined }, { id: 8 })
console.log(JSON.stringify(r6, null, 2))
// [
//   {
//     "id": 1,
//     "name": "张三"
//   },
//   {
//     "id": 2,
//     "name": "李四"
//   },
//   {
//     "id": 3,
//     "name": "王五"
//   }
// ]

基于 MIT 许可发布