0

我对 Javascript 完全陌生。我正在处理来自业务数据库的数据,我想从数组数组中删除一个数组。

我有这个数组数组:

var results = [ [#null, null], ['miglioramento', 30], ['correttiva',45] ];

我想从结果中删除第一个数组: [#null, null] 因为我想实现这个数组:

results = [ ['miglioramento', 30], ['correttiva',45] ];

我怎样才能做到这一点?

我真的提前谢谢你!

4

5 回答 5

1

假设您的数组的第一个条目[null, null]不是[#null, null]. 这样,您将过滤所有仅包含null条目的空数组。

results.filter((arr) => arr.filter((entry) => entry !== null).length);

于 2020-01-27T14:32:05.317 回答
0

您可以使用slice函数:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

const array = [0, 1, 2, 3]
const slicedArray = array.slice(1)
console.log(slicedArray)
// print : [1, 2, 3]
于 2020-01-27T14:32:11.717 回答
0

对于只有两个元素的内部数组,您可以使用.filter()解构元素来检查其中一个元素是否不等于null. 如果是这种情况,您的过滤谓词将返回true,这将保留内部数组。

const data = [[null, null], ['miglioramento', 30], ['correttiva',45]];

const res = data.filter(([e1, e2]) => e1 !== null || e2 !== null);
console.log(res);

如果您的内部数组可以有两个以上的元素,您可以使用.some()来确保内部数组中的某些null元素不是. .some()如果内部数组中的任何元素的谓词为真,那么它的返回值.some()也将是true,这将使过滤器将内部数组保留为最终结果的一部分。

const data = [[null, null], ['miglioramento', 30], ['correttiva',45]];

const res = data.filter(
  inner => inner.some(elem => elem !== null)
);
console.log(res);

于 2020-01-27T14:35:22.393 回答
0

创建一个函数来检查一个数组是否全部为空,然后在过滤器函数中调用它。

var results = [
  [null, null],
  ['miglioramento', 30],
  ['correttiva', 45]
];


const checkNull = arr => arr.every(el => el != null);

const res = results.filter(el => checkNull(el));

console.log(res);

于 2020-01-27T14:46:01.780 回答
-2

var results = [ [null, null], ['miglioramento', 30], ['correttiva',45] ]
results.shift()
console.log(results)

于 2020-01-27T14:33:19.160 回答