尝试创建一个使用过滤器而不是for或while循环或foreach函数的函数,它将遍历一个对象数组,只返回它们的属性值.例如,
function getShortMessages(messages) {
return messages.filter(function(obj){
return obj.message
});
}
Run Code Online (Sandbox Code Playgroud)
所以,如果我打电话
getShortMessages([{message:"bleh"},{message:"blah"}]);
Run Code Online (Sandbox Code Playgroud)
我应该返回一个数组= ["bleh","blah"]我只是不确定如何在这些指导下实现过滤器.我也在考虑使用链式函数.map.
////这是整个代码挑战规范/////
基础:过滤练习4 of 18
使用Array#filter编写一个名为getShortMessages的函数.
getShortMessages获取具有".message"属性的对象数组,并返回长度小于<50个字符的消息数组.
该函数应该返回一个包含消息本身的数组,而不包含它们包含的对象.
消息:一个包含10到100个随机对象的数组,如下所示:
{message:'Esse id amet quis eu esse aute officia ipsum.' //随机}
{
message: 'Esse id amet quis eu esse aute officia ipsum.' // random
}
Run Code Online (Sandbox Code Playgroud)
[ 'Tempor quis esse consequat sunt ea eiusmod.',
'Id culpa ad proident ad nulla laborum incididunt.',
'Ullamco in ea et ad anim …Run Code Online (Sandbox Code Playgroud) 根据同一主题的另一个主题,typescript是一种"引导"语言.
如果typescript是Bootstrapped语言,则意味着初始编译器是用初始的低级语言编写的.那会是什么语言?
来自维基百科:
TypeScript编译器本身是用TypeScript编写的,可以转换为JavaScript并在Apache 2 License下获得许可.
由于某种原因,我无法看到为什么我的数组连接方法无法正常工作。这是快速检查代码:
function rot13(str) { // LBH QVQ VG!
var strAry = str.split('');
var transformed = strAry.map(function(val){
if(val === " ") return " ";
else{
var code = val.charCodeAt(0);
return String.fromCharCode(code-13);
}
});
transformed.join('');
console.log(transformed);
return transformed;
}
// Change the inputs below to test
rot13("SERR PBQR PNZC");
Run Code Online (Sandbox Code Playgroud)
这个想法是传递字符串,它将被转换为可读的代码字符串,但是联接不起作用。另外,一些数字转换不正确,不确定为什么要为那个数字加分。
所以我对js采访的问题基本上涉及内部函数中的范围和变量,例如假设你有这个:
function(){
var a=b=3;
}
Run Code Online (Sandbox Code Playgroud)
很明显,b没有定义所以它已经成为一个全局变量,现在当你在全局范围内改变b时会发生什么,变化的值是否也是?
我不确定如何测试这个,但是例如,如果你将b改为10,那么现在也是10还是会保持3?
javascript ×3
arrays ×1
filter ×1
fromcharcode ×1
reference ×1
scope ×1
string ×1
typescript ×1
variables ×1