请告诉我,如果该行的每个元素都不是值,如何删除2D数组中的整个行(如果为NaN,则删除;如果为null,则删除;如果未定义,则删除,依此类推...)。如果该行的至少一个元素是数字,字符串,布尔值或任何有意义的值,则将该行的每个元素保留在其位置上。
例如,在此数组中:
var array = [];
array[0] = [];
array[1] = [];
array[2] = [];
array[0][1] = "title";
array[0][2] = NaN;
array[0][3] = 3;
array[1][0] = 0;
array[1][1] = undefined;
array[1][2] = null;
array[1][3] = 3;
array[2][0] = "title";
array[2][1] = 1;
array[2][2] = undefined;
array[2][3] = "url";
console.log(array);
删除array [0] [2],array [1] [2],array [2] [2]。预期结果是:
[[undefined,“ title”,3],[0,undefined,3],[“ title”,1,“ url”]]
您可以先获取列,然后拼接数组。
var array = [
[, "title", NaN, 3],
[0, undefined, null, 3],
["title", 1, undefined, "url"]
],
indices = array
.reduce((r, a) => {
a.forEach((v, i) => r[i] = r[i] || !isNaN(v) && v !== null);
return r;
}, [])
.reduceRight((r, v, i) => (v || r.push(i), r), []);
array.forEach(a => indices.forEach(i => a.splice(i, 1)));
console.log(indices);
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句