W***o 发帖数: 6519 | 1 今天被问到一个javascript的问题
限制是不能用任何loop,不能用任何library(只能用pure javascript),怎么来去除
一个integer array里面所有的偶数?
我的想法是:既然不让明着用loop, 我就想到了用.filter() 这个method,
比如:
var numbers = [1, 2, 3, 4, 5, 6, 7];
var oddNumbers = numbers.filter(function(val) {
return val % 2 != 0;
});
console.log(oddNumbers);
大家有什么好办法吗? | f***b 发帖数: 21 | 2 不用loop目测是考你函数式
JS本身就能玩FP | W***o 发帖数: 6519 | 3 可是不让用loop,我只能想到用内置的function了
【在 f***b 的大作中提到】 : 不用loop目测是考你函数式 : JS本身就能玩FP
| f***b 发帖数: 21 | 4 一个参考做法,只用push和shift
var numbers = [1, 2, 3, 4, 5, 6, 7];
var odds = [];
var loop = function(n) {
if(!n.length) return;
var last = n[0];
n.shift();
if(last % 2) odds.push(last);
loop(n);
}
loop(numbers);
console.log(odds); | S******y 发帖数: 1330 | 5 高手,正解
【在 f***b 的大作中提到】 : 一个参考做法,只用push和shift : var numbers = [1, 2, 3, 4, 5, 6, 7]; : var odds = []; : var loop = function(n) { : if(!n.length) return; : var last = n[0]; : n.shift(); : if(last % 2) odds.push(last); : loop(n); : }
| p*****2 发帖数: 21240 | 6 你这个solution有什么问题吗
【在 W***o 的大作中提到】 : 今天被问到一个javascript的问题 : 限制是不能用任何loop,不能用任何library(只能用pure javascript),怎么来去除 : 一个integer array里面所有的偶数? : 我的想法是:既然不让明着用loop, 我就想到了用.filter() 这个method, : 比如: : var numbers = [1, 2, 3, 4, 5, 6, 7]; : var oddNumbers = numbers.filter(function(val) { : return val % 2 != 0; : }); : console.log(oddNumbers);
| W***o 发帖数: 6519 | 7 the .filter() method is from JavaScript API, which is not allowed
【在 p*****2 的大作中提到】 : 你这个solution有什么问题吗
| p*****2 发帖数: 21240 | 8 shift push不算吗
【在 W***o 的大作中提到】 : the .filter() method is from JavaScript API, which is not allowed
| h***k 发帖数: 161 | | h***k 发帖数: 161 | 10 这个filter是pure javascript啊,不让用javascript api是个什么意思。。。
还有前面shift那个方法recursion效率太低了吧。。
【在 W***o 的大作中提到】 : 今天被问到一个javascript的问题 : 限制是不能用任何loop,不能用任何library(只能用pure javascript),怎么来去除 : 一个integer array里面所有的偶数? : 我的想法是:既然不让明着用loop, 我就想到了用.filter() 这个method, : 比如: : var numbers = [1, 2, 3, 4, 5, 6, 7]; : var oddNumbers = numbers.filter(function(val) { : return val % 2 != 0; : }); : console.log(oddNumbers);
| S******y 发帖数: 1330 | 11 filter is ecma 5 only if I recall correctly, won't work in older browsers. | h***k 发帖数: 161 | 12 搞笑的吧。。。不让用ecma 5的功能。。ecma 6都要出来了。。难道要能在ie6里运行
不成。。
【在 S******y 的大作中提到】 : filter is ecma 5 only if I recall correctly, won't work in older browsers.
|
|