2015-06-11 11 views
5

Mam json w tym, że będzie klucz, który może istnieć lub nie w danych Jason. Teraz chcę uzyskać całkowitą liczbę istnienia klucza w jquery.Określona liczba kluczy w jsonie jquery

JSON:

jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}]; 

Jak możemy to zrobić w jQuery proszę mi pomóc w tym

+0

Jaki jest twój oczekiwany wynik. –

+0

@MadhuMagar trzy będzie całkowitą liczbą jako ostateczny wynik –

+0

@MadhuMagar Nie chcę używać foreach do tego –

Odpowiedz

6

Można użyć filter na to:

var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}]; 
 
var count = jasonData.filter(function(element) { 
 
    return element.test; 
 
}).length; 
 
document.write(count);

Albo do dalszej zgodności z różnymi przeglądarkami, jQuery zapewnia podobną grep funkcję:

var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}]; 
 
var count = $.grep(jasonData, function(element) { 
 
    return element.test; 
 
}).length; 
 
document.write(count);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+1

przyjął odpowiedź, dziękuję –

1

Nie jQuery potrzebnego

To daje obiekt pokazując każdy klawisz i liczbę razy Występuje:

var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}]; 
 
var keyCounts = {}; 
 

 
for (var i = 0; i < jasonData.length; i++) { 
 
    var key = Object.keys(jasonData[i])[0]; 
 
    if (typeof(keyCounts[key]) == 'undefined') { 
 
    keyCounts[key] = 1; 
 
    } else { 
 
    keyCounts[key] += 1; 
 
    } 
 
} 
 

 
console.log(keyCounts);

0

Można to zrobić również w rdzeniu JS ...

Tutaj jest uruchomiony kod.

var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}]; 
 
var sum=0; 
 
jasonData.forEach(function(value,i){ 
 
    if(value.test){ 
 
    sum++; 
 
    } 
 
}); 
 
console.log(sum);

0

zrobić w bardzo prosty sposób ::

var tempArr = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}]; 
var tempObj; 

for(var i=0;i<tempArr.length;i++){ 
    tempObj = tempArr[i]; 
    for(key in tempObj){ 
     alert("key : "+key +"value : "+tempObj[key]); 
    } 
} 

W ten sposób można dostać każdy bez kluczy i wartości w każdej tablicy json. Teraz dostosuj ten kod zgodnie z wymaganiami, jak zwiększanie i zmniejszanie liczby lub cokolwiek chcesz zrobić.

Mam nadzieję, że masz podejście !!!

Powiązane problemy