将拼接与字符串数组一起使用
Using splice with an array of strings
我有一个字符串数组。
如果数组中只有一串空格,我想检查并删除它们。
为此,我编写了以下代码,修剪空白,然后删除长度为0的元素。
修剪工作正常,这串空格实际上是0 legth(我用警报检查了这一点),但元素没有从数组中删除。
当然,searchterms就是数组。
for (var i=0;i<searchterms.length;i++)
{
searchterms[i]=searchterms[i].trim();
alert(searchterms[i]+" - "+searchterms[i].toString().length);
if (searchterms[i].toString().length = 0)
{
searchterms.splice(i,1);
}
}
如果我使用以下代码,也会发生同样的情况:
for (var i=0;i<searchterms.length;i++)
{
tempterm=searchterms[i].trim();
alert(tempterm+" - "+tempterm.toString().length);
if (tempterm.toString().length = 0)
{
searchterms.splice(i,1);
}
}
提前谢谢。
var temp = Array();
var k=0;
for (var i=0;i<searchterms.length;i++)
{
if((searchterms[i].trim())!="" && searchterms[i].length>0)
{
temp[k] = searchterms[i];
k++;
}
}
Temp将包含新的arrray
试试这个
var i = 0;
while (i < searchterms.length)
{
if (searchterms[i].trim().length == 0) searchterms.splice(i, 1);
i++;
}
if (searchterms[i].toString().length = 0)
您正在if语句中执行一个赋值(=),而该赋值应该是比较运算符(相等运算符==)。
if (searchterms[i].toString().length == 0)
另一个问题是splice
修改了原始数组。因此,如果遇到空白元素,则每次迭代的元素索引都会发生变化。
这也可以使用Array.prototype.filter
以更简洁的方式完成
var searchTerms = ['asdf', '', 'ed', ' ', 'd##'];
var newTerms = searchTerms.filter(function(e) {
return e.trim().length !== 0;
});
console.log(newTerms);
jsFiddle演示
相关文章:
- 高亮显示与数组字符串一起使用时文本插件中断
- 将推入式数组与for一起使用..在..循环中
- 将代理与纯数组一起使用
- 如何让Knockout可观察数组与jQuery对话框一起工作
- 将数组原型函数与非数组一起使用
- 如何将数组中的所有onNext值放在一起
- 如何使用与jQuery的AJAX postrequest + php一起发送的数组
- 将 JavaScript new 关键字与可变长度参数数组一起使用
- IndexOf 不能与包含数组的对象一起正常工作
- JavaScript 如何将函数结果与数组中的值一起传递到同一个函数中
- 将.html与JQuery一起使用,不会将数组中的所有项发布到html
- 如何将Math.max与对象数组一起使用
- 将字符串与数组变量混合在一起,为javascript中的元素分配id
- 变量数组+正则表达式不能一起工作
- 如何在数组中保存mongodb集合?同时将mongoose与expressJS一起使用
- 将拼接与字符串数组一起使用
- 将Slice与Knockout创建的数组一起使用's映射插件
- 从公共数组读取时,javascript if语句不能与ifValid一起使用
- 通过readStream将数组的值与javascript文件一起发送到客户端
- 数组不是'I don’我没有和其他表格一起寄出