鍍金池/ 問答/HTML5  HTML/ 兩個字符串的比較

兩個字符串的比較

源字符串的形式可能有這么以下幾種形式
1.good morning
2.It's a book
3.你好!
對應的返回值是
1.[{'str':'good','score':1},{'str':'morining','score':0}]
2.[{'str':'it','score':1},{'str':'is','score':1},{'str':'a','score':1},{'str':'book','score':1}]
3.[{'str':'Hello','score':1}]

想要根據(jù)返回的值來對源字符串進行一些標注 如果 score>=1 則標綠,score<=0則標紅 有沒有一些簡單的算法。 如果是中文無法匹配的話不予處理。

回答
編輯回答
別硬撐

1.對返回值先做下處理,轉(zhuǎn)換成對象:

var scoreMap = {
    good:1,
    morning: 1,
    // 等等
}

2.把源字符串拆分,遍歷,獲取顏色

var arr = 'good morning'.split(' ')
for(var i= 0; i < arr.length; i++) {
    console.log(scoreMap[arr[i]])
    if (scoreMap[arr[i]] > 1) {
        color = '綠色'
    } else {
        color = '紅色'
    }
}
2017年5月28日 04:29
編輯回答
葬憶

為什么morning的score 是0呢。
如果morning的score 是1的話,你這個logic 就是要實現(xiàn)一個把string 拆分成單詞,再分別計數(shù)的功能。

2018年1月8日 16:44
編輯回答
六扇門

我覺得對score<=0的單詞修改顏色不難:

var data = [{'str':'good','score':1},{'str':'morining','score':0}];
data.forEach(function(word){
    word.color = word.score<=0?'red':'green';//只判斷了<=0的情況
});

如果第三方的返回值中的str字段只是原字符串的分割,那也很好處理:

var srcStr = "good morning";
var key = srcStr.split(" ");//按空格分割
//遍歷key數(shù)組,與處理后的返回值數(shù)組對應
for(let i = 0;i<key.length;i++){
    var word = data.filter(function(word){
        return word.str === key[i];
    });
    var color = word[0].color;//word是只有一個對象的數(shù)組
    (span元素).style.color = color;
}

但是,我看題目描述居然出現(xiàn)2種特殊情況:

  1. 原始數(shù)據(jù)good morning返回值[{'str':'good','score':1},{'str':'morining','score':0}],第二個是morining……
  2. '你好!'會返回hello,這個處理我不知道做映射的。
2018年3月21日 01:22