J'ai du code JSON qui contient plusieurs objets:
[
{
"MNGR_NAME": "Mark",
"MGR_ID": "M44",
"EMP_ID": "1849"
},
{
"MNGR_NAME": "Steve",
"PROJ_ID": "88421",
"PROJ_NAME": "ABC",
"PROJ_ALLOC_NO": "49"
}
]
Mon extrait de boucle JSON est:
function ServiceSucceeded(result)
{
for(var x=0; x<result.length; x++)
{
}
}
Pourriez-vous s'il vous plaît laissez-moi savoir comment vérifier qu'il n'y a pas d'occurrence de "MNGR_NAME" dans le tableau. (Il apparaît deux fois dans mon cas.)
Vous devez accéder à l'objet result
lors de l'itération.
for (var key in result)
{
if (result.hasOwnProperty(key))
{
// here you have access to
var MNGR_NAME = result[key].MNGR_NAME;
var MGR_ID = result[key].MGR_ID;
}
}
Vous pouvez utiliser $ .each : de jQuery
var exists = false;
$.each(arr, function(index, obj){
if(typeof(obj.MNGR_NAME) !== 'undefined'){
exists = true;
return false;
}
});
alert('Does a manager exists? ' + exists);
Retourner false
cassera chacun, alors quand un gestionnaire est rencontré, l'itération s'arrête.
Notez que votre objet est un tableau d'objets JavaScript . Pourriez-vous utiliser quelque chose comme ça
var array = [{
"MNGR_NAME": "Mark",
"MGR_ID": "M44",
"EMP_ID": "1849"
},
{
"MNGR_NAME": "Steve",
"PROJ_ID": "88421",
"PROJ_NAME": "ABC",
"PROJ_ALLOC_NO": "49"
}];
var numberOfMngrName = 0;
for(var i=0;i<array.length;i++){
if(array[i].MNGR_NAME != null){
numberOfMngrName++;
}
}
console.log(numberOfMngrName);
Utilisez ES6 ...
myobj1.map(items =>
{
if(items.MNGR_NAME) {
return items.MNGR_NAME;
}else {
//do want you want.
}
})
Merci.
Ceci trouvera le nombre d’occurrences de la clé MNGR_NAME
dans votre Object
Array
:
var numMngrName = 0;
$.each(json, function () {
// 'this' is the Object you are iterating over
if (this.MNGR_NAME !== undefined) {
numMngrName++;
}
});
Dans la boucle, result[x]
correspond à l'objet;
function ServiceSucceeded(result)
{
var managers = 0
for(var x=0; x<result.length; x++)
{
if (typeof result[x].MNGR_NAME !== "undefined")
managers++;
}
alert(managers);
}
Vous pouvez utiliser $ .each ou $ .grep si vous souhaitez également obtenir les éléments contenant l'attribut.
filtered = $.grep(result, function(value) {
return (value["MNGR_NAME"] !== undefined)
});
count = filtered.length
Vous pouvez parcourir la collection et vérifier chaque objet s'il contient la propriété:
var count = 0;
var i;
for(i = 0; i < jsonObj.length; i += 1) {
if(jsonObj[i]["MNGR_NAME"]) {
count++;
}
}
Exemple de travail: http://jsfiddle.net/j3fbQ/