[英]Using splice with an array of strings
我有一個字符串數組。
我想知道如果數組中只有空格字符串並將其刪除。
為此,我編寫了以下代碼,以修整空格,然后刪除長度為0的元素。
修剪工作正常,一串空格實際上為0英尺長(我通過警報進行了檢查),但未從數組中刪除元素。
當然,搜索詞是數組。
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);
}
}
提前致謝。
if (searchterms[i].toString().length = 0)
您正在if語句中執行賦值( = ),而應改為比較(equality operator == )。
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);
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將包含新的錯誤
嘗試這個
var i = 0;
while (i < searchterms.length)
{
if (searchterms[i].trim().length == 0) searchterms.splice(i, 1);
i++;
}
嘗試這個
描述:
Javascript數組splice()方法更改數組的內容,在刪除舊元素的同時添加新元素。 句法:
array.splice(index, howMany, [element1][, ..., elementN]);
以下是參數的詳細信息:
**index :** Index at which to start changing the array.
**howMany :** An integer indicating the number of old array elements to remove. If howMany is 0, no elements are removed.
element1, ..., elementN : The elements to add to the array. If you don't specify any elements, splice simply removes elements from the array.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.