使用 Javascript 或 jQuery 删除最后一个字符

Removing last character with Javascript or jQuery

本文关键字:最后一个 字符 删除 jQuery Javascript 使用      更新时间:2023-09-26

我有下面的代码正在尝试(不成功)从下面的输出字符串中删除最后一个逗号。

       jQuery(function($){
            var string = "{image : 'melbourne.jpg'},{image : 'tunnel.jpg'},{image : 'building.jpg'},"; 
            $.supersized({
                slide_interval          :   3000, 
                slides                  :   [ string.substring(0, string.length - 1) ]
            });
        });

但我需要的是这个:

 jQuery(function($){
            var string = "{image : 'melbourne.jpg'},{image : 'tunnel.jpg'},{image : 'building.jpg'},"; 
            $.supersized({
                slide_interval          :   3000, 
                slides                  :   [ {image : 'melbourne.jpg'},{image : 'tunnel.jpg'},{image : 'building.jpg'} ]
            });
        });

我尝试了很多不同的东西,但无济于事。我不确定我做错了什么!!

你对你的str.substring(0, str.length - 1);是正确的

但是您没有正确创建字符串对象var string = '{image : 'melbourne.jpg'},{image : 'tunnel.jpg'},{image : 'building.jpg'},';。 首先,你不希望在它周围加上引号。 其次,它畸形。 第三,听精灵!

不要使用字符串、JavaScript 对象传递这样的数据。

   jQuery(function($){
        var slides = [{image : 'melbourne.jpg'},
                      {image : 'tunnel.jpg'},
                      {image : 'building.jpg'}]; 
        $.supersized({
            slide_interval          :   3000, 
            slides                  :   slides
        });
    });

你可能会说字符串来自服务器端,那么你应该修复服务器端的数据,让它可以被解析为javascript对象。

但是,如果你不听我的劝告并坚持那根弦,你可能会触及邪恶eval

   jQuery(function($){
        var string = "{image : 'melbourne.jpg'},{image : 'tunnel.jpg'},{image : 'building.jpg'},"; 
        $.supersized({
            slide_interval          : 3000, 
            slides                  : eval("["+string.substring(0, string.length - 1)+"]")
        });
    });

您需要先处理数据:

var imageStr = "{image : 'melbourne.jpg'},{image :'tunnel.jpg'},{image :'building.jpg'},";
imageStr = imageStr.substring(0, imageStr.length - 1)
imagesArray = imageStr.split(',');
var jsonObj;
var imageList = [];
for(var i = 0; i < imagesArray.length; i++){
    jsonObj = eval("("+imagesArray[i]+")");
imageList.push(jsonObj);    
}
var data = JSON.stringify(imageList);

处理后,您可以按如下方式使用数据变量:

slider: data