2016-09-26 38 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"