@@ -104,11 +104,78 @@ toggleItem([1, 2, 3], 3)
104104``` typescript
105105import { updateByKey } from " array-utils-ts"
106106
107- const arr = [{ id: 1 }, { id: 2 }]
107+ // prettier-ignore
108+ const arr1 = [{ id: 1 , v: 1 }, { id: 2 , v: 1 }]
108109
109- updateByKey ([1 , 2 , 3 ], 4 )
110- // -> [1, 2, 3, 4]
110+ const arr2 = updateByKey (arr1 , " id" , { id: 1 , v: 2 })
111+ // -> [{ id: 1, v: 2 }, { id: 2, v: 1 }]
112+ // arr1 !== arr2
111113
112- updateByKey ([1 , 2 , 3 ], 3 )
113- // -> [1, 2]
114+ const arr3 = updateByKey (arr2 , " id" , { id: 3 , v: 1 })
115+ // -> [{ id: 1, v: 2 }, { id: 2, v: 1 }]
116+ // arr2 === arr3 // note: item not found, nothing changed
117+ ```
118+
119+ ### upsertByKey
120+
121+ ``` typescript
122+ import { upsertByKey } from " array-utils-ts"
123+
124+ // prettier-ignore
125+ const arr1 = [{ id: 1 , v: 1 }, { id: 2 , v: 1 }]
126+
127+ const arr2 = upsertByKey (arr1 , " id" , { id: 1 , v: 2 })
128+ // -> [{ id: 1, v: 2 }, { id: 2, v: 1 }]
129+ // arr1 !== arr2
130+
131+ const arr3 = upsertByKey (arr2 , " id" , { id: 3 , v: 1 })
132+ // -> [{ id: 1, v: 2 }, { id: 2, v: 1 }, { id: 3, v: 1 }]
133+ // arr2 !== arr3
134+ ```
135+
136+ ### toggleByKey
137+
138+ ``` typescript
139+ import { toggleByKey } from " array-utils-ts"
140+
141+ // prettier-ignore
142+ const arr1 = [{ id: 1 , v: 1 }, { id: 2 , v: 1 }]
143+
144+ const arr2 = toggleByKey (arr1 , " id" , { id: 1 , v: 2 })
145+ // -> [{ id: 2, v: 1 }]
146+ // arr1 !== arr2
147+
148+ const arr3 = toggleByKey (arr2 , " id" , { id: 3 , v: 1 })
149+ // -> [{ id: 2, v: 1 }, { id: 3, v: 1 }]
150+ // arr2 !== arr3
151+ ```
152+
153+ ### isFirstByKey
154+
155+ ``` typescript
156+ import { isFirstByKey } from " array-utils-ts"
157+
158+ // prettier-ignore
159+ const arr = [{ id: 1 , v: 1 }, { id: 2 , v: 1 }]
160+
161+ isFirstByKey (arr , " id" , { id: 1 , v: 2 })
162+ // -> true
163+
164+ isFirstByKey (arr , " id" , { id: 2 , v: 1 })
165+ // -> false
166+ ```
167+
168+ ### isLastByKey
169+
170+ ``` typescript
171+ import { isLastByKey } from " array-utils-ts"
172+
173+ // prettier-ignore
174+ const arr = [{ id: 1 , v: 1 }, { id: 2 , v: 1 }]
175+
176+ isLastByKey (arr , " id" , { id: 1 , v: 1 })
177+ // -> false
178+
179+ isLastByKey (arr , " id" , { id: 2 , v: 1 })
180+ // -> true
114181```
0 commit comments