2017-06-06 15 views
0

名前と数量の2つの値を持つペイロードを作成しようとしています。各数量は名前に関連付けられています。私がしようとしているのは、数量がゼロの場合、名前と数量を持つオブジェクトがペイロードに追加されないということです。オブジェクトのキーがゼロの場合はオブジェクトを削除します

var myQuantity = $('input[name="quantity[]"]').map(function() {return $(this).val();}).get(); 
 
var myName = $('[name="name[]"]').map(function(){return $(this).text();}).get(); 
 

 
    
 
var len = myQuantity.length; 
 
var data = [] 
 
    
 
for (var x = 0; x < len; x++){ 
 
    var element = { 
 
    "name"  : myName[x], 
 
    "quantity" : myQuantity[x] \t 
 
    } 
 
    data.push(element); 
 
} 
 
console.log(data);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span name="name[]" class="name">1</span><input type="text" name="quantity[]" class="quantity" value="1"><br> 
 
<span name="name[]" class="name">2</span><input type="text" name="quantity[]" class="quantity" value="0"><br> 
 
<span name="name[]" class="name">3</span><input type="text" name="quantity[]" class="quantity" value="5"><br>

+0

if> 0でdata.pushをラップしてみます。 – xkcd149

答えて

0

あなたはそれが空でない場合にのみことを追加することができます。

for (var x = 0; x < len; x++){ 
    var element = { 
     "name"  : myName[x], 
     "quantity" : myQuantity[x] 
    } 
    if(myQuantity[x] != 0){ 
     data.push(element); 
    } 
    } 
    console.log(data); 
関連する問題