将一系列单词重新组合成一个句子

时间:2015-05-03 22:58:05

标签: javascript jquery arrays

好的,我为我的应用程序构建了一个亵渎旗帜。它的大部分都像魅力一样,除了我似乎无法再将一系列单词作为一个句子连接在一起。

     $.each(chatHistory, function(key, obj){
        obj.chat_talk = obj.chat_talk.split("+");

            if (flagProfanity(obj.chat_talk) === true){
                //obj.chat_talk = obj.chat_talk.split(",").join(" ");
                $("#chatBody").append(
                "<div class='flag'>"+
                "<div>"+ obj.chat_name +"</div>"+
                "<div>"+"["+ obj.alliance_name +"]:"+"</div>"+
                "<div class='chatMsg'>"+ decodeURIComponent(obj.chat_talk) +"</div>"+
                "<div class='chatTime'>"+ obj.chat_time +"</div>"+
                "</div><br />"
                );
            }else{
                $("#chatBody").append(  
                //obj.chat_talk = obj.chat_talk.split(",").join(" ");               
                "<div class='chatName' onclick='warnee($(this).html)'>"+ obj.chat_name +"</div>"+
                "<div>"+"["+ obj.alliance_name +"]:"+"</div>"+
                "<div class='chatMsg'>"+ decodeURIComponent(obj.chat_talk) +"</div>"+
                "<div class='chatTime'>"+ obj.chat_time +"</div>"+
                "<br />"
                );
            }
    });//End each loop

我试过了:

obj.chat_talk = obj.chat_talk.split(",").join(" ");

obj.chat_talk = obj.chat_talk.join(" ");

都没有奏效。如果没有if语句中的那些行,那么内容就会很好地输出到显示中,只是所有em之间都有逗号。把它们放进去,根本没有输出。

没有关于firebug的错误或警告,也没有来自2个不同JS验证器的任何错误。

内容示例:

"chat": [
     {
    "chat_type": 0,
    "chat_id": 445473683,
    "chat_name": "system",
    etc,
    etc,
    "chat_talk": "Chat+messages+here"
    },
    {
    //Another chat message
    }

]

这是obj的内容。 obj,chat_thank应该只包含消息部分。然后我将内容拆分为&#34; +&#34;并通过标志功能运行它。

编辑:亵渎标志功能代码

function flagProfanity(object) {
$.each(object, function(key, word){
    if ($.inArray(word, blacklist) != -1){
        return true;
    }
});
return false;   
}//End Profanity flag

1 个答案:

答案 0 :(得分:0)

这是你的问题

function flagProfanity(object) {
  $.each(object, function(key, word){
    if ($.inArray(word, blacklist) != -1){
      return true;
    }
  });
  return false;   
}

返回true;

在匿名函数(键,词)

的上下文中返回

因此它始终是假的

function flagProfanity(words) {
  var found = false;
  $.each(word, function(key, word){
    if ($.inArray(word, blacklist) != -1){
      found = true;
    }
  });
  return found;   
}

会更好用(注意:我更改了输入的名称,以明确这是单词列表,而不是对象)

obj.chat_talk = obj.chat_talk.join(" ");

应该是你用来组合字符串数组的东西