@@ -104,11 +104,78 @@ toggleItem([1, 2, 3], 3)
104
104
``` typescript
105
105
import { updateByKey } from " array-utils-ts"
106
106
107
- const arr = [{ id: 1 }, { id: 2 }]
107
+ // prettier-ignore
108
+ const arr1 = [{ id: 1 , v: 1 }, { id: 2 , v: 1 }]
108
109
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
111
113
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
114
181
```
0 commit comments