实训的项目终于接近尾声了。。。忙里偷闲继续做小题目,嘎嘎嘎
闲话暂且不说,第一题:
Everything Be True
所有的东西都是真的!
完善编辑器中的every函数,如果集合(collection)中的所有对象都存在对应的属性(pre),并且属性(pre)对应的值为真。函数返回ture。反之,返回false。
记住:你只能通过中括号来访问对象的变量属性(pre)。
提示:你可以有多种实现方式,最简洁的方式莫过于Array.prototype.every()。
如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。
function every(collection, pre) {
// Is everyone being true?
var newC = [];
for(var i = 0; i < collection.length; i++) {
if(!collection[i][pre]){
return false;
}
newC[i] = collection[i][pre];
}
return newC.every(isTrue);
}
function isTrue(value) {
return value;
}
every([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex");
第二题:感觉自己做的有点臃肿,望大佬赐教!
Arguments Optional
创建一个计算两个参数之和的 function。如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果。
例如,
add(2, 3)
应该返回5
,而add(2)
应该返回一个 function。调用这个有一个参数的返回的 function,返回求和的结果:
var sumTwoAnd = add(2);
sumTwoAnd(3)
返回5
。如果两个参数都不是有效的数字,则返回 undefined。
如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
代码:
function add() {
var len = arguments.length;
var a = arguments[0];
function sumTwoAnd(){
if(typeof(arguments[0]) == 'number'){
return arguments[0] + a;
}
else return undefined;
}
if(len == 2 ) {
if(typeof(arguments[0]) == 'number' && typeof(arguments[1]) == 'number'){
return arguments[0] + arguments[1];
}
else return undefined;
}
else if(typeof(a) == 'number'){
return sumTwoAnd;
}
else return undefined;
}
add(2,3);
顺便再吐槽一下后面的进阶部分题目难度太大了...先不做了,明天继续(明天可能会选择做算法~所以说不定会另开一个系列)