簡體   English   中英

對字符串數組使用拼接

[英]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);

jsFiddle演示

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM