W3Cschool中级脚本算法(17.数组取值算法挑战)

数组取值算法挑战


问题:

删除数组(第一个参数)的元素,从左边开始,直到回调函数(第二个参数)return true就停止。

第二个参数,func,是一个函数。用来测试数组的第一个元素,如果返回fasle,就从数组中抛出该元素(注意:此时数组已被改变),继续测试数组的第一个元素,如果返回fasle,继续抛出,直到返回true。

最后返回数组的剩余部分,如果没有剩余,就返回一个空数组。


要求:

drop([1, 2, 3, 4], function(n) {return n >= 3;}) 应该返回 [3, 4]

drop([0, 1, 0, 1], function(n) {return n === 1;}) 应该返回 [1, 0, 1]

drop([1, 2, 3], function(n) {return n > 0;}) 应该返回 [1, 2, 3]

drop([1, 2, 3, 4], function(n) {return n > 5;}) 应该返回 []

drop([1, 2, 3, 7, 4], function(n) {return n > 3;}) 应该返回 [7, 4]

drop([1, 2, 3, 9, 2], function(n) {return n > 2;}) 应该返回 [3, 9, 2]


问题答案:

function drop(arr, func) {
var newArr = [];
for (var i in arr) {
    if (func(arr[i])) {
        newArr = arr.slice(i);
        break;
    }
}
return newArr;
}

drop([1, 2, 3], function(n) {return n < 3; });

题目链接:

https://www.w3cschool.cn/codecamp/drop-it.html

猜你喜欢

转载自blog.csdn.net/qq_42044073/article/details/82732775