【问题标题】:Trying to add string element to array using map尝试使用映射将字符串元素添加到数组
【发布时间】:2017-02-20 23:33:09
【问题描述】:

我尝试使用 map 将字符串字符串元素添加到数组中,但代码不起作用。有什么问题?

function towerBuilder(nFloors) {
 let towerArray = [];
 towerArray.length = nFloors; 
 let arrItem = '*' + ' ';
 let newArr = towerArray.map(function(item, i) {
   let n = 2 * i + 1;
   item = arrItem.repeat(n);
   return item;
 });
}

【问题讨论】:

  • 您是否尝试过使用调试工具进行调试,而不是通过网站进行调试的相当慢的方法?
  • 我在这里测试它 - jsfiddle.net/44g3gLkd - 一个获取未定义元素的数组。
  • 每个网络浏览器都有调试工具,允许您设置断点并单步执行代码以找出发生了什么。值得学习如何正确使用它们。

标签: javascript arrays string dictionary


【解决方案1】:

Array.map 将跳过 undefined 值。所以你必须使用new Array(length).fill(dummyValues)

function towerBuilder(nFloors) {
  let towerArray = new Array(nFloors).fill("")
  let arrItem = '*' + ' ';
  let newArr = towerArray.map(function(item, i) {
    let n = 2 * i + 1;
    item = arrItem.repeat(n);
    return item;
  });
  console.log(newArr)
}
towerBuilder(3)

参考

【讨论】:

    【解决方案2】:

    您可以尝试以下代码来解决您的问题:

    function towerBuilder(nFloors) {
      var stars = '*';
      var count;
      var array=[];
     for (var i = 0; i<=nFloors-1; i++){
      count = stars.repeat(2 * i + 1);
      array.push(count);
    }
    
    return array;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 2021-11-15
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多