Javascript 在js中筛选小于<;50个字符长
我正在做简单的js函数。。。Javascript 在js中筛选小于<;50个字符长,javascript,jquery,arrays,dom-events,Javascript,Jquery,Arrays,Dom Events,我正在做简单的js函数。。。 GetShortMessages获取具有“.message”属性的对象数组,并返回长度小于50个字符的消息数组。 在下面的小提琴中提供我的代码。。 基本上,我正在尝试学习一种过滤器: function filteredMessages(messages){ return messages.length < 50; } function getShortMessages(messages) { // SOLUTION GOES HERE
GetShortMessages
获取具有“.message”属性的对象数组,并返回长度小于50个字符的消息数组。
在下面的小提琴中提供我的代码。。
基本上,我正在尝试学习一种过滤器:
function filteredMessages(messages){
return messages.length < 50;
}
function getShortMessages(messages) {
// SOLUTION GOES HERE
var filtered = messages.filter(filteredMessages);
return filtered;
}
module.exports = getShortMessages
您忘记接受
消息
属性:
function filteredMessages(){
return messages.length < 50;
}
函数filteredMessages(){
返回消息。长度<50;
}
将功能更改为
function filteredMessages(message){
return message.length < 50;
}
函数filteredMessages(消息){
返回消息长度<50;
}
您的filteredMessages
函数需要接受一个参数作为数组。filter
方法将回调应用于每个元素,并将该元素作为参数传递给提供的回调
function filteredMessages(message){
return message.length < 50;
}
函数filteredMessages(消息){
返回消息长度<50;
}
实际上,您不必为此编写任何单独的函数,可以使用匿名函数:
messages.filter(function(message){
return message.length < 50;
});
messages.filter(函数(消息){
返回消息长度<50;
});
我认为问题在于您有一个具有“message”属性的对象数组,而没有字符串数组。这应该是你的解决方案。
在filter函数中,必须检查传递对象的message属性
var消息=[];
messages.push({message:'text 1'});
推送({message:'text2很长,很长,超过50个字符,你知道'});
messages.push({message:'text 3'});
函数筛选器消息(obj){
返回obj.message.length<50;
}
函数getShortMessages(消息){
var filtered=messages.filter(filteredMessages);
返回过滤;
}
var模块={};
module.exports=getShortMessages;
var filtered=module.exports(消息);
for(过滤后的变量i){
console.log(过滤后的[i].message);
}
感谢您的回复…当我运行程序时,我得到的是空数组,但当我验证它失败时…更新dmy代码并出错…我不确定您如何调用它,但它工作正常。打开控制台并运行更新后的JSFIDLE:感谢您的回复…我想我正在使用一个额外的函数…是否可以在不创建额外函数的情况下实现*不要使用任何for/while循环或数组#forEach.*不要创建任何不必要的函数,例如helpers.M:是否可以单独使用此函数实现函数getShortMessages(messages){//解决方案转到这里var filtered=messages.filter(filteredMessages);return filtered;}@谢谢你的回复…当我运行程序时,我得到了空数组,但当我验证它失败时…更新dmy代码和错误。。。
messages.filter(function(message){
return message.length < 50;
});