更新多维数组的元素

Updating elements of a multidimensional array

我正在寻求更新下面的团队结果数组。足球比分将填充每个内部数组的位置 1 和 2。

var teamResults=[
  ["Home","F","A","Away"],
  ["A",,,"B"],
  ["A",,,"C"],
  ["B",,,"C"],
  ["B",,,"A"],
  ["C",,,"A"],
  ["C",,,"B"],
];

最初每个分数未定义如下:

console.log(teamResults[1]);

 ["A" ,undefined ,undefined ,"B"]

使用 'splice' 可以更新 A 队在第 1 场比赛中的得分:

teamResults[1].splice(1,1,3);

["A" ,3 ,undefined ,"B"]

但是B队用同样的方法失败了。它覆盖了 A 队的分数,而 B 队的分数元素完全消失了吗?

teamResults[1].splice(1,2,4); 

["A" ,4 ,"B"]

任何有关如何生成以下数组的建议将不胜感激

["A" ,3 ,4 ,"B"]

Array.prototype.splice() 语法是:

var arrDeletedItems = array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

因此 teamResults[1].splice(1,2,4); 将从索引 1 中删除 2 个元素,然后添加 4。

你的情况应该是teamResults[1].splice(2,1,4);

var arr = ["A" ,3 ,undefined ,"B"];

arr.splice(2, 1, 4);

console.log(arr)

为什么不用索引赋值,不用拼接

teamResults[1][1] = 3;