2016-09-26 76 views
-5

我找到了很多關於如何去除JavaScript字符串等的最後一個逗號回答的最後一個逗號,但我無處設法找到以下問題的解決方案:如何刪除JavaScript數組

var columns = new Array("datum","viz1","viz2","gaz","aram_nappali",); 

這是我的數組,我想刪除最後一個逗號,因爲它們是通過PHP if語句生成的。

我嘗試以下,但沒有成功:

columns = columns.substring(1, s.length - 1); 

任何一個簡單的解決方案?

在此先感謝

+7

爲什麼你不修復你的PHP if語句不添加額外的逗號? –

+0

如果elemt是if/whatever的最後一個,那麼不加逗號 –

+0

或者不要猜測是否要添加逗號,並且在嘗試創建逗號分隔列表時使用PHP,使用'implode' 。 –

回答

0

你真的應該修正PHP輸出,你也可以做這一招簡單數組末忽略逗號

var columns = ["datum","viz1","viz2","gaz","aram_nappali",,,]; 
var test = new Array(columns.join()); 
console.log(test); 
+0

依賴'new Array()'通常是一個壞主意,因爲它[並不是可預測的](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Syntax )。一個無限更好的解決方案是解決生成JS代碼的PHP腳本中的問題,以便它可以簡單地生成正確的JS。 –

+0

感謝這是我的問題的唯一解決方案。 – Tibor

+0

@Tibor它確實不是 - 修復你的PHP,而不是你的JavaScript。 –

0

不要使用new Array(),它不會做你認爲它(感謝behaving differently depending on how many arguments you supply)。 JavaScript有一個數組文字,你應該使用替代(無論你是否手工編寫的JS或在轉換步驟中產生的話):

// in JavaScript: 
var columns = ["datum","viz1","viz2","gaz","aram_nappali"]; 

而且,如果你的JS是通過PHP產生,然後這裏的解決方案是確保你正確使用PHP,通過使其產生正確的JS代碼:如果你想有一個逗號分隔的列表的字符串版本(或「任何東西分隔的」

// in PHP: 
$varlist = array("datum","viz1","viz2","gaz","aram_nappali"); 

... 

// use [implode] to convert your array to joined string: 
$jscode = 'var columns = "' . implode('","', $varlist) . '"];'; 

列表),您可以使用implode來實現此目的。

-3

只要刪除創建後立即數組中的最後一個項目:

columns.splice((columns.length -1), 1) 
0
var columns = ["datum","viz1","viz2","gaz","aram_nappali",]; 
var a = columns.toString(); 
//a will be "datum,viz1,viz2,gaz,aram_nappali"