配列があり["Lorem", "", "ipsum"]
ます。この配列から空の文字列を削除して、を取得したいと思います["Lorem", "ipsum"]
。
ループを使用せずに、各要素をトラバースして削除せずにこれを行う方法はありますか?
Javascript 1.6を使用している場合(おそらくIE8以下では動作しません)、次を使用できます
arr.filter(Boolean) //filters all non-true values
例えば。
console.log([0, 1, false, "", undefined, null, "Lorem"].filter(Boolean));
// [1, "Lorem"]
もう1つの方法は、jqueryの.map()関数を使用することです。
var newArray = $.map( oldArray, function(v){
return v === "" ? null : v;
});
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
function cleanArray(actual)
{
var newArray = new Array();
for(var i = 0; i<actual.length; i++)
{
if (actual[i])
{
newArray.push(actual[i]);
}
}
return newArray;
}
$(function()
{
var old = ["Lorem", "", "ipsum"];
var newArr = cleanArray(old);
console.log(newArr)
});
</script>
ループなし
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(function()
{
var arr = ["Lorem", "", "ipsum"];
arr = $.grep(arr,function(n){
return(n);
});
console.log(arr)
});
</script>
両方がテストされます。
var arr = [a、b、c、、e、f 、、 g、h];
arr = jQuery.grep(arr、function(n){return(n);});
arrは[a、b、c、d、e、f、g]になりました。