2016-03-23 10 views
0

dize yaparken başlangıçta tanımsız bir değere neden olur Bir değerler dizim var ve bunlardan bir uzun dize yapıyorum; Bunu yapmak için jQuery's each() yöntemini kullanıyorum, ancak console.log() son değeri, başlangıçta eklenen bir undefined değerine sahip olduğunda.Bir dizide jQuery ile döngü yapmak,

Dizideki her değer için bir console.log() yaptım ve tanımsız değerler mevcut değil.

CodePen:http://codepen.io/gutterboy/pen/wGdqKo

Kodu:

var foo, options = []; 

var defaults = [ 
    'one', 'two', 'three', 'four', '|', 
    'five', 'six', 'seven', '|', 
]; 

function bar() { 
    $.each(defaults, function (index, value) { 
     if ($.inArray(value, options) === -1) { 
      if (value == '|') { 
       foo += value; 
      } else { 
       foo += (index == 0) ? value : ',' + value; 
      } 
     } 
    }); 
    console.log(foo); 
} 

$(document).ready(function() { 
    bar(); 
}); 

cevap

2

Kodunuz foo başlatmaz. Başlangıç ​​değeri bu nedenle undefined'dur. += işleci, geçerli değere bir dize ekler, böylece son sonucun başlangıcında undefined ile biter.

1

codepen'deki kod foo'yu başlatmıyor. Yukarıdaki kodunuz foo'yu bir dizi olarak başlatır. deneyin:

var foo='';