Skip to content

Commit 75af194

Browse files
authored
Merge pull request #1393 from ember-learn/kategengler-patch-1
Correct uses of filter -- Array.prototype.filter doesn't mutate
2 parents 4ffb570 + 501ae8d commit 75af194

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

content/ember/v5/deprecate-array-prototype-extensions.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ someArray.compact();
4848

4949
After:
5050
```js
51-
someArray.filter(val => val !== undefined && val !== null);
51+
someArray = someArray.filter(val => val !== undefined && val !== null);
5252
```
5353
#### `filterBy`
5454

@@ -60,8 +60,8 @@ someArray.filterBy('food', 'beans'); // [{ food: 'beans', isFruit: false }]
6060

6161
After:
6262
```js
63-
const someArray = [{ food: 'apple', isFruit: true }, { food: 'beans', isFruit: false }];
64-
someArray.filter(el => el.food === 'beans'); // [{ food: 'beans', isFruit: false }]
63+
let someArray = [{ food: 'apple', isFruit: true }, { food: 'beans', isFruit: false }];
64+
someArray = someArray.filter(el => el.food === 'beans'); // [{ food: 'beans', isFruit: false }]
6565
```
6666
#### `findBy`
6767

@@ -205,8 +205,8 @@ someArray.reject(el => el.isFruit); // [{ food: 'beans', isFruit: false }]
205205
206206
After:
207207
```js
208-
const someArray = [{ food: 'apple', isFruit: true }, { food: 'beans', isFruit: false }];
209-
someArray.filter(el => !el.isFruit); // [{ food: 'beans', isFruit: false }]
208+
let someArray = [{ food: 'apple', isFruit: true }, { food: 'beans', isFruit: false }];
209+
someArray = someArray.filter(el => !el.isFruit); // [{ food: 'beans', isFruit: false }]
210210
```
211211
#### `rejectBy`
212212
@@ -218,8 +218,8 @@ someArray.rejectBy('isFruit'); // [{ food: 'beans', isFruit: false }]
218218
219219
After:
220220
```js
221-
const someArray = [{ food: 'apple', isFruit: true }, { food: 'beans', isFruit: false }];
222-
someArray.filter(el => !el.isFruit); // [{ food: 'beans', isFruit: false }]
221+
let someArray = [{ food: 'apple', isFruit: true }, { food: 'beans', isFruit: false }];
222+
someArray = someArray.filter(el => !el.isFruit); // [{ food: 'beans', isFruit: false }]
223223
```
224224
#### `sortBy`
225225
@@ -301,8 +301,8 @@ someArray.without('a'); // ['b', 'c']
301301
302302
After
303303
```js
304-
const someArray = ['a', 'b', 'c'];
305-
someArray.filter(el => el !== 'a'); // ['b', 'c']
304+
let someArray = ['a', 'b', 'c'];
305+
someArray = someArray.filter(el => el !== 'a'); // ['b', 'c']
306306
```
307307
308308
Please make sure `without` reactivity is fully tested.
@@ -866,7 +866,10 @@ export default class SampleComponent extends Component {
866866

867867
@action
868868
removeObject(value) {
869-
this.abc.filter(item => item !== value);
869+
const index = this.abc.indexOf(value);
870+
if (index !== -1) {
871+
this.abc.splice(index, 1);
872+
}
870873
}
871874
}
872875
```

0 commit comments

Comments
 (0)