--- id: a5deed1811a43193f9f1c841 challengeType: 5 forumTopicId: 16010 localeTitle: 筛选出数组中满足条件的元素 --- ## Description
给定数组arr,从数组的第一个元素开始,用函数func来检查数组的每个元素并删除,直到某个元素传入函数func时返回true。函数最终的返回值也是一个数组,它由原数组中第一个使得functrue的元素及其之后的所有元素组成。 如果数组中的所有元素都不能让functrue,则返回空数组[]
## Instructions
## Tests
```yml tests: - text: dropElements([1, 2, 3, 4], function(n) {return n >= 3;})应该返回[3, 4]。 testString: assert.deepEqual(dropElements([1, 2, 3, 4], function(n) {return n >= 3;}), [3, 4]); - text: dropElements([0, 1, 0, 1], function(n) {return n === 1;})应该返回[1, 0, 1]。 testString: assert.deepEqual(dropElements([0, 1, 0, 1], function(n) {return n === 1;}), [1, 0, 1]); - text: dropElements([1, 2, 3], function(n) {return n > 0;})应该返回[1, 2, 3]。 testString: assert.deepEqual(dropElements([1, 2, 3], function(n) {return n > 0;}), [1, 2, 3]); - text: dropElements([1, 2, 3, 4], function(n) {return n > 5;})应该返回[]。 testString: assert.deepEqual(dropElements([1, 2, 3, 4], function(n) {return n > 5;}), []); - text: dropElements([1, 2, 3, 7, 4], function(n) {return n > 3;})应该返回[7, 4]。 testString: assert.deepEqual(dropElements([1, 2, 3, 7, 4], function(n) {return n > 3;}), [7, 4]); - text: dropElements([1, 2, 3, 9, 2], function(n) {return n > 2;})应该返回[3, 9, 2]。 testString: assert.deepEqual(dropElements([1, 2, 3, 9, 2], function(n) {return n > 2;}), [3, 9, 2]); ```
## Challenge Seed
```js function dropElements(arr, func) { // Drop them elements. return arr; } dropElements([1, 2, 3], function(n) {return n < 3; }); ```
## Solution
```js function dropElements(arr, func) { // Drop them elements. while (arr.length && !func(arr[0])) { arr.shift(); } return arr; } ```