web-dev-qa-db-fra.com

créer un tableau associatif dans jQuery

C’est ce que j’ai eu jusqu’à présent et les types de chaussures sont boots, wellingtons, leather, trainers (in that order)

Je veux parcourir et attribuer la valeur si j'ai quelque chose comme

var shoeArray = { boots : '3', wellingtons: '0', leather : '1', trainers: '3'};

pour le moment, je viens de recevoir un tableau de {3,0,1,3} avec lequel je peux travailler, mais ce n'est pas très utile. 

function shoe_types() {
    var shoeArray = [];
    $('[type=number]').each(function(){
        $('span[data-field='+$(this).attr('id')+']').text($(this).val());      
        shoeArray.Push ( parseInt($(this).val()) );      
    });             
    return shoeArray;        
}
13
LeBlaireau

Vérifiez cette fonction 

function shoe_types() {
    var shoeArray = {}; // note this
    $('[type=number]').each(function(){
       $('span[data-field='+$(this).attr('id')+']').text($(this).val());
       shoeArray[$(this).attr('id')] =  parseInt($(this).val()) ;
    });
    return shoeArray;

}

PS: En supposant que $(this).attr('id') a tous les types de chaussures

22
zzlalani

Le tableau associatif en javascript est identique à l'objet

Exemple:

var a = {};
a["name"] = 12;
a["description"] = "description parameter";
console.log(a); // Object {name: 12, description: "description parameter"}

var b = [];
b["name"] = 12;
b["description"] = "description parameter";
console.log(b); // [name: 12, description: "description parameter"]
7
Mykyta Shyrin

Ce que vous voulez, c'est une fonction qui retournera un object{}

LIVE DEMO

function shoe_types(){
   var shoeObj = {};
   $('[name="number"]').each(function(){
     shoeObj[this.id] = this.value;
   });
   return shoeObj;
}

shoe_types(); // [object Object]
5
Roko C. Buljan

Vous pouvez essayer ceci pour créer un tableau associé dans jQuery

var arr = {};
$('[type=number]').each(function(){
    arr.Push({
         $(this).attr('id'): $(this).val()              
     });
});

console.log(arr);

Cela vous permettra d'envoyer toutes vos données, peu importe ce que vous voulez transmettre dans array by ajax.

2
Dushyant Dagar

si $(this).attr('id') est le type de chaussures que vous pouvez essayer

shoeArray[$(this).attr('id')] = parseInt($(this).val());
0
jbduzan