2016-03-08 35 views
0

我想以這種方式來變換數組:變換數組不考慮空回報

  • 假值變爲0
  • 真值成爲1
  • 空值的休息空

我用這個功能:

var arr = [true, false, false, true, true, null, null, null, null]; 
 

 
var result = $.map(arr, function (val, i) { 
 
      if (val == false) { 
 
       return 0 
 
      } else if (val == true) { 
 
       return 1 
 
      } else { 
 
      return null 
 
      } 
 
     }); 
 

 
$("#result").text(result)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="result"> 
 
    
 
</div>

該函數返回[1,0,0,1,1]; ...

我想要的= [1,0,0,1,1,null,null,null,null];

任何想法? 謝謝

+1

你看了$ .MAP()DOCO?如果要在結果數組中包含空值,則不能使用$ .map()。 – nnnnnn

+0

顯然不是,因爲文檔指出返回null刪除元素。 –

+0

噢,是的,我錯過了這部分,謝謝 – taboubim

回答

1

您可以通過使用簡單的做到這一點很容易JavaScript的.map()

var arr = [true, false, false, true, true, null, null, null, null]; 

var result = arr.map(function (val, i) { 
    if (val === false) { 
     return 0; 
    } else if (val === true) { 
     return 1; 
    } else { 
     return null; 
    } 
}); 

console.log(result) // Array [ 1, 0, 0, 1, 1, null, null, null, null ] 
+0

工作正常,謝謝 – taboubim

1

根據文檔的$ .MAP刪除空值...

有我們可以使用空值[空],而不是...

var arr = [true, false, false, true, true, null, null, null, null]; 
 

 
var result = $.map(arr, function (val, i) { 
 
      if (val == false) { 
 
       return [0] 
 
      } else if (val == true) { 
 
       return [1] 
 
      } else { 
 
      return [null] 
 
      } 
 
     });

+1

很好的解決方法。我沒有這樣做過。 (你不應該需要1和0左右的方括號,儘管它們不會受到傷害。) – nnnnnn