嵌套数组中的JavaScript循环(新手)

嵌套数组中的JavaScript循环(新手),javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我是一名初学者,正在关注Colt Steele在Udemy上发布的一段Web开发人员训练营视频,并决定进一步尝试JavaScript。希望了解更多有关通过嵌套数组更好地查询的信息。今天早上我写了下面的语法,想看看是否可以使用我做的循环来保存循环后变量中每个玩家的“数字”?让我知道你的想法!我也愿意学习任何方法或课程,你会建议我采取进一步完善我的编码技能 下面的函数仅打印Players变量中声明的数组中的每个参数。我想使用这个结果,在循环之后,只将数字作为“var”的目标。对不起,如果这没有任何意

我是一名初学者,正在关注Colt Steele在Udemy上发布的一段Web开发人员训练营视频,并决定进一步尝试JavaScript。希望了解更多有关通过嵌套数组更好地查询的信息。今天早上我写了下面的语法,想看看是否可以使用我做的循环来保存循环后变量中每个玩家的“数字”?让我知道你的想法!我也愿意学习任何方法或课程,你会建议我采取进一步完善我的编码技能

下面的函数仅打印Players变量中声明的数组中的每个参数。我想使用这个结果,在循环之后,只将数字作为“var”的目标。对不起,如果这没有任何意义,但我觉得必须有一种方法来做到这一点,哈哈

var players = [[["Lebron James","23"],["Kevin Durant","35"]],
           [["Dwayne Wade","3"],["Russell Westbrook","0"]]];

function loop(){
  for(var i=0; i<players.length;i++){
    for (var k=0; k<players[i].length; k++){
    for (var m=0; m<players[i][k].length; m++){
          console.log(players[i][k][m])
      }
    }
  }
}
var玩家=[[[“勒布朗·詹姆斯”,“23”],[“凯文·杜兰特”,“35”],
[“德韦恩·韦德”、“3”]、[“拉塞尔·韦斯特布鲁克”、“0”];
函数循环(){

对于(var i=0;i你只想从这个数组中得到数字?然后你几乎得到了

声明一个空数组
const numbers=[]
,然后在内部循环中添加一个数字。元素
players[i][k]
是一个玩家的数组
[name,number]
。因此
players[i][k][1]
是你想要的数字。将它放入你的数字数组中

function loop(){
  for(var i=0; i<players.length;i++){
    for (var k=0; k<players[i].length; k++){
       numbers.push(players[i][k][1])
    }
  }
}

希望这会有所帮助!

尽管这可能有点遥不可及,但它对您以后可能仍然有用。数组有多种方法,可以循环遍历其中的所有项。每个方法都有不同的用途和结果

我试着使它尽可能短,并使用和使它工作

const numbers = players.flatMap(group => group.map(player => player[1]));
或者更详细地写:

const numbers = players.flatMap(function(group) {
  return group.map(function(player) {
    return player[1];
  });
});
map
循环遍历数组中的所有项,并使用相同数量的键创建一个新数组,但使用回调函数返回的新值

flatMap
与之相同,但本质上是
map
和的组合。
flat
可以将具有例如
[['hey'],['bye']]
的数组转换为
['hey',bye']
。移除数组深度级别并获取同一数组中的所有值

这两种方法都将其值返回到一个新数组中。因此,下面的一行从数组中提取值,并将其存储在
number
变量中。在本例中为常量


继续练习并尝试所有的方法。它们确实可以帮助您更轻松地使用数组。请查看您有哪些选项。

当然,有很多方法可以做到这一点。您希望您的变量在结尾包含什么?您是否尝试创建类似[23,35,3,0]的数组所以现在整个函数都打印出来了:勒布朗,35,凯文杜兰特,35…等等,而不是控制台日志记录(我只是想控制台日志来查看我的迭代是否在工作,这是因为它似乎被循环到数组的每个索引中)。.但我想提取数字并将其存储在一个变量中,作为练习。只是不清楚您想要的结果是什么。很抱歉,我之前按enter键的速度太快了。lol..基本上不是console.log..我想使用我所做的所有循环将每个玩家的数字提取到一个变量中。这听起来很有趣,我知道..lol.wonder但是当你说“一个变量”的时候,你想到了什么?你想要一个包含“232530”的变量吗?你想要一个包含四个数字的数组变量吗?你也需要保留名称吗?嗨,Michael,谢谢你的回答。我一直在尝试你的想法,但不幸的是,当我运行它时,它只给了我数字23。我可能会让这变得比它应该的更难。但是我想尝试在大量嵌套的数组中指定特定的值ork..我仍然在玩..进步的一部分,对吗?哈哈谢谢你埃米尔-感谢老兵的回应。我可能会让这变得比它应该的更难,但我尽我所能不使用任何其他方法,除了典型的“for”循环来迭代嵌套数组以获得每个玩家的数字。使用NBA球员的数字有点尴尬,但对我来说,这是直截了当的练习方法。我把数组分割成KD和勒布朗作为顶层数组,这样我就想更多地循环它。
const numbers = players.flatMap(function(group) {
  return group.map(function(player) {
    return player[1];
  });
});