多次元配列からnull値を削除する関数を作成しようとしていますが、うまく機能しません。配列の最後のレイヤーには浸透せず、2つのnull値が隣接している場合は削除されません。
function isArray(obj) {
// http://stackoverflow.com/a/1058753/1252748
return Object.prototype.toString.call(obj) === '[object Array]';
}
function removeEmptyArrayElements(obj) {
for (key in obj) {
if (obj[key] === null) {
obj = obj.splice(key, 1);
}
var isArr = isArray(obj[key]);
if (isArr) {
removeEmptyArrayElements(obj[key]);
}
}
return obj;
}