javascript - 如何在javascript中从矩阵的每一行中删除最后一个元素

标签 javascript arrays matrix multidimensional-array

我试图从 javascript 中的矩阵的每一行中删除最后一个元素。我正在尝试使用“ map ”功能,但没有成功。

这是我的代码:

var matrixWithExtraInfo = [
  [1, 2, 3, 4, "dog"],
  [5, 6, 7, 8, "dog"],
  [9, 10, 11, 12, "dog"],
  [13, 14, 15, 16, "dog"],
  [17, 18, 19, 20, "dog"]
];

var conciseMatrix = [
  [1, 2, 3, 4],
  [5, 6, 7, 8],
  [9, 10, 11, 12],
  [13, 14, 15, 16],
  [17, 18, 19, 20]
]

var conciseMatrix = matrixWithExtraInfo.map(function(index) {
  console.log(index)
  matrixWithExtraInfo[index].pop();
  return matrixWithExtraInfo[index];
});
console.log(matrixWithExtraInfo);

我明白

TypeError: Cannot read property 'pop' of undefined

最佳答案

.map 的第一个参数是您要迭代的项目,而不是索引。

由于这里的每个项目都是一个数组,因此您可以 .pop 数组(这将改变现有数组),或 .slice 数组(不会改变现有数组)。

var matrixWithExtraInfo = [
    [1,2,3,4,"dog"],
    [5,6,7,8,"dog"],
    [9,10,11,12,"dog"],
    [13,14,15,16,"dog"],
    [17,18,19,20,"dog"]
];

var conciseMatrix = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
    [13,14,15,16],
    [17,18,19,20]
]

var conciseMatrix = matrixWithExtraInfo.map((arr) => {
  arr.pop();
  return arr;
});
console.log(matrixWithExtraInfo);
console.log(conciseMatrix);

(上面的内容很奇怪 - 您需要的结构已经在matrixWithExtraInfo中,使用另一个变量来保存它会令人困惑,但这与您的原始代码最接近)

var matrixWithExtraInfo = [
    [1,2,3,4,"dog"],
    [5,6,7,8,"dog"],
    [9,10,11,12,"dog"],
    [13,14,15,16,"dog"],
    [17,18,19,20,"dog"]
];

var conciseMatrix = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
    [13,14,15,16],
    [17,18,19,20]
]

var conciseMatrix = matrixWithExtraInfo.map(arr => arr.slice(0, -1));
console.log(matrixWithExtraInfo);
console.log(conciseMatrix);

关于javascript - 如何在javascript中从矩阵的每一行中删除最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60701670/

相关文章:

javascript - 如何将元素添加到 jQuery UI Accordion header ?

java - 将文本文件读入数组的字符串中

python - 有没有更好的方法来获取rgb矩阵?

c - 使用动态分配的 C 矩阵乘法(程序崩溃)

c - 编写一个程序来读取排序并写入数组

python - 如何在Python中从Json中获取起源-命运矩阵?

javascript - 添加元素以有条件地验证函数

javascript - 在 javascript 变量上一次性用 %20 替换/替换 ""和 ""?

javascript - 使叠加层在任何尺寸的屏幕上都完美居中

c - 是否可以在 C 中使用匿名的临时数组?