Javascript NodeJs String.inculdes()无法按预期工作
由于某些原因,我无法正确筛选列表,因为Javascript NodeJs String.inculdes()无法按预期工作,javascript,node.js,string,filter,Javascript,Node.js,String,Filter,由于某些原因,我无法正确筛选列表,因为name.includes(line)总是false http .createServer((请求、恢复)=>{ //…在这里,您可以创建JSON格式的数据响应 让body=[]; 请求 .on('错误',(错误)=>{ 控制台错误(err); }) .on('数据',(块)=>{ 推(块); }) .on('end',()=>{ body=Buffer.concat(body.toString(); 控制台日志(req); const list=JSON.
name.includes(line)
总是false
http
.createServer((请求、恢复)=>{
//…在这里,您可以创建JSON格式的数据响应
让body=[];
请求
.on('错误',(错误)=>{
控制台错误(err);
})
.on('数据',(块)=>{
推(块);
})
.on('end',()=>{
body=Buffer.concat(body.toString();
控制台日志(req);
const list=JSON.parse(JSON.stringify(data)).filter({name})=>{
console.log(
name.toLowerCase(),
body.toLowerCase(),
name.toLowerCase().includes(body.toLowerCase())
);
log(name.toLowerCase().includes('damage');
返回name.toLowerCase().includes(body.toLowerCase());
});
控制台日志(列表);
HandlerResponse(请求、回复、数据);
});
})
.监听(端口);
结果:
“损坏”
损坏反向机油调节器“损坏”错误
真的
音量提前调节器“损坏”错误
假的
音量提前洗发水“损坏”错误
假的
损坏反转油洗发水“损坏”错误
真的
颜色维持专业“伤害”假
假的
损坏反向头发血清“损坏”错误
真的
损坏反向修复性头发处理“损坏”错误
真的
[]
我不知道为什么它会显示我false
。为了检查我的理智,我检查了浏览器和showstrue
中的第一行
提前感谢。String.prototype.includes()区分大小写。以下是我解决此问题的工作循环。这个问题是因为body没有通过Buffer.concat(body.toString()正确地进行转换,所以我用以下方式对其进行了更改:
constbodyline=JSON.stringify(body);
主体=主体线。子字符串(3,主体线。长度-3);
改变了身体的自我创造:
而不是
let body=[];
请求
.on('错误',(错误)=>{
控制台错误(err);
})
.on('数据',(块)=>{
推(块);
})
我用字符串创建替换数组,并将块合并
let body='';
请求
.on('错误',(错误)=>{
控制台错误(err);
})
.on('数据',(块)=>{
body+=chunk.toString();
})
这是一个好消息。还有,为什么在你的“损坏”
周围有引号?但这甚至不像name.toLowerCase().includes(body)
你已经注意到,“损坏反向机油调节器”。toLowerCase().includes(“损坏”)==true
。您的某些字符串不是您认为的字符串(例如,请注意上面提到的引号),根本不是字符串(它不是您正在调用的String.prototype.includes
,或者传递的不是字符串的内容可能会发生变化),或者你以前错过了toLowerCase
。你能包括data
实际上是什么及其类型吗?我可能找到了原因,我的身体因为某种原因无法匹配body=Buffer.concat(body.toString()
但是name.toLowerCase().includes('damage')
工作正常。它来自NodeJS服务器上的响应,但它甚至不像name.toLowerCase().includes(body)