我想以这种方式转换数组:
我使用了这个功能:
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>
&#13;
此函数返回[1,0,0,1,1]; ....
我想要的是什么= [1,0,0,1,1,null,null,null,null];
任何想法? 感谢
答案 0 :(得分:2)
根据jQuery $.map()
documentation,只有非空或未定义的返回值包含在结果数组中。
使用Javascript的native array .map()
method代替,因为将在新数组中放置空值。
(较旧的IE不支持数组.map()
方法,但鉴于您使用的是jQuery 2.x,您的代码也不支持旧的IE。)
答案 1 :(得分: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 ]
答案 2 :(得分:1)
根据文档,$ .map删除空值...
要有空值我们可以使用[null]而不是......
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]
}
});