javascript
  • jquery
  • html
  • count
  • 2014-11-22 2 views 0 likes 
    0

    Код:Из вызова API, как я могу захватить поле и посмотреть, сколько раз это значение повторяется?

    var textArray = new Array(); 
        var allText = results.data._contained.text; 
        for (var i = 0; i < allText.length; i++) { 
         var text1 = allText[i]; 
         var textHtml = "<div id='text_item'>"; 
         textHtml += "<span class='some_div'>{0}</span>".replace("{0}", text1.text_is); 
         textHtml += "</div>"; 
         textArray.push(text1.texts.priority); 
    
         $("#text_box").append(textHtml); 
        } 
    
        if (foo === 'Some text') { 
         document.write("match"); 
        } else { 
         document.write("not match"); 
        } 
    
    } 
    

    У меня есть выше логику, которая работает нормально, но я застрял на то, что я не делал раньше.

    Это то, что я хочу сделать:

    Пролет .some_div будет содержать строковые значения. То, что я хочу сделать, - подсчитать, сколько раз повторяется одно и то же значение. Как я могу это сделать?

    Пример: предположим, что значение «Медицина» и оно повторяется 10 раз независимо друг от друга .some_div. Как я могу вернуть количество сколько раз повторений?

    +0

    Вы, вероятно, хотите разместить больше информации, чтобы мы могли воспроизвести сценарий, не ясно (по крайней мере для меня), что вы пытаетесь сделать – Tomanow

    +0

    @Tomanow Просто обновил мое описание. Благодаря! :) – KPO

    ответ

    0

    Вы можете использовать функцию String.split для достижения этого, если text1.text_is (который является содержимым .some_div span) имеет тип String.

    var wordsCount = {}; 
    var allWords = text1.text_is.split(" ") //split by space or the delimiter of the words. 
    for (var i = 0, l = allWords.length; i < l; i++) 
    { 
        var word = allWords[i]; 
        wordsCount[word] = (wordsCount[word] || 0) + 1; 
    } 
    

    Успехов

    +0

    Yup, но в этом случае вы указываете «Медицина», значения динамичны, поэтому мне нужно иметь возможность делать это динамически. – KPO

    +0

    Вы хотите сказать, сколько нужно повторять каждое слово в строке? –

    +0

    Yees, так, допустим, у меня есть Медицина Что-то Я хочу сказать, что Медицина повторялась 2 раза, и что-то повторялось один раз. – KPO

    0

    Наиболее эффективный и удобный способ сделать это состоит в использовании string.match() с регулярным выражением. Это имеет дополнительное преимущество, позволяющее нечувствительность к регистру.

    function countWords(text) { 
     
        var resultArray = []; 
     
        var text = $(".some_div").text(); //store the original text 
     
        text = text.replace(/\W/g, " "); //replace non-alphanumerics with a whitespace 
     
        text = text.replace(/\s{2,}/g, " "); //replace more than one space with a single space 
     
    
     
        while (text.length > 0) { 
     
        var index = text.indexOf(" "); //find the first space 
     
        
     
        if (index === 0) { 
     
         text = text.slice(1, text.length); //this is a leading space, skip it 
     
        } else { 
     
         var wordToMatch = text.slice(0, index); //find the first word 
     
         var regex = new RegExp(wordToMatch, "gi"); //create case-insensitive regular expression with the word 
     
         var wordCount = text.match(regex).length; //get number of word occurences 
     
         resultArray.push({ word: wordToMatch, count: wordCount }); //store the result for this word 
     
         text = text.replace(regex, ""); //remove this word from the input text 
     
         text = text.replace(/\s{2,}/g, " "); //replace more than one space with a single space again 
     
        } 
     
        } 
     
    
     
        return resultArray; 
     
    } 
     
    
     
    countWords($(".some_div").text()).forEach(function(item) { 
     
        $("#result").append(item.word + ": " + item.count + "<br/>"); 
     
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
     
    <span class='some_div'>The field of Medicine is a medicine Field</span> 
     
    <br/> 
     
    <div id="result"></div>

    Смежные вопросы