Javascript 插入“;及;在最后一个元素jquery之前 var swTitle={}; var-favorite=[]; $.each($($(输入[name='Title']:选中),函数(){ favorite.push($(this.val()); log($($input[name='Title']:checked”); }); swTitle.domain=收藏夹; var List={}; for(var m=0;m

Javascript 插入“;及;在最后一个元素jquery之前 var swTitle={}; var-favorite=[]; $.each($($(输入[name='Title']:选中),函数(){ favorite.push($(this.val()); log($($input[name='Title']:checked”); }); swTitle.domain=收藏夹; var List={}; for(var m=0;m,javascript,jquery,Javascript,Jquery,我有一个用逗号分隔的键和值数组。我想在最后一个选中的元素之前插入“and”并删除逗号。请帮我解决这个问题。我认为您可以减少代码,在最后一个元素之前添加和,例如 var swTitle = {}; var favorite = []; $.each($("input[name='Title']:checked"), function() { favorite.push($(this).val()); console.log($("input[name='Ti

我有一个用逗号分隔的键和值数组。我想在最后一个选中的元素之前插入“and”并删除逗号。请帮我解决这个问题。

我认为您可以减少代码,在最后一个元素之前添加
,例如

var swTitle = {};
var favorite = [];
    $.each($("input[name='Title']:checked"), function() {
        favorite.push($(this).val());
        console.log($("input[name='Title']:checked"));
    });
    swTitle.domain = favorite;   
var List = {};
    for (var m = 0; m < favorite.length; m++) {
        var swTitleObj = [];
        $.each($('input[name="' + swTitle.domain[m] + '"]:checked'), function() {
            console.log(swTitle.domain[m]);
            swTitleObj.push($(this).attr("class"));
            console.log(swTitleObj);
        });
        List[swTitle.domain[m]] = swTitleObj;
    }
var swSkillData = " ";
    $.each(List, function(key, value) {
        console.log(key + ":" + value);
        swSkillData += '<li>' + key + '&nbsp' + ':' + '&#160' + value + '</li>';
    });
Output will be like:
  Fruits:Apple,Banana,Orange,Grapes
  I want my output be like:
  Fruits:Apple,Banana,Orange & Grapes
片段

var value='苹果、香蕉、橘子、葡萄';var pos=value.lastIndexOf(',');//获取最后一个逗号索引
value=value.substring(0,pos)+'&'+value.substring(pos+1);

console.log(值)这是一种简单且可自定义的方式

(解决方案是通用的)

$(文档).ready(函数(){
var ara=[‘苹果’、‘香蕉’、‘橘子’、‘葡萄’];
阿糖胞苷;
函数显示a(x){
var-str='';
对于(变量i=0;i

水果:

我解决了自己的问题。我使用上述正则表达式将最后一个逗号替换为“and”。感谢Regex

您能为您目前所做的工作创建一个JSFIDLE吗。因此,它比给定的代码更容易理解和解决。显示的代码似乎是以HTML字符串的形式生成输出,其中包含
  • 元素,而不是逗号分隔的列表,所以您所说的逗号在哪里?谢谢Barot。但它似乎对我没有帮助,它产生了你刚才提到的确切的输出。如果你想把它融入你的代码中,如果你想让我@sunaYes请帮帮我Barot@Barot. 您对我的问题有什么解决方案吗?@suna我已经用您现有的代码更新了我的答案,并添加了一个代码片段,用
    &
    替换上一个
    。我已经使用了您的解决方案,但它似乎不起作用@rohana可能是您遗漏了什么,否则我的代码片段工作正常。如果您可以用HTML(Fiddle或Snippet)向我展示您的代码,那么我可以帮助您找到更多问题。
    var inputs=$("input[name='Title']:checked"),
        len=inputs.length,
        swSkillData='',
        counter=0;// to get the last one
    $.each(inputs, function() {
        sep=' , '; // add comma as separator
        if(counter++==len-1){ // if last element then add and
           sep =' and ';
        }
        swSkillData += '<li>' + this.value + // get value
                '&nbsp' + ':' + '&#160' +
                 this.className + // get classname
                 sep + // adding separator here
                 '</li>';
    
    });
    
    $.each(List, function(key, value) {
        console.log(key + ":" + value);
        var pos = value.lastIndexOf(',');// get last comma index
        value = value.substring(0,pos)+' & '+value.substring(pos+1);
        swSkillData += '<li>' + key + '&nbsp' + ':' + '&#160' + value + '</li>';
    });
    
    str = str.replace(/,(?=[^,]*$)/, 'and')