You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问题:无法将星号金字塔输出存入数组并展示

解决星号金字塔内容存入数组的问题

你的代码问题出在这几个核心点:

  • arr.push()没有传递任何内容,数组始终是空的
  • 直接用document.write逐个输出字符,没有把每一行内容拼接成完整字符串,自然没法存入数组
  • 函数最后没有返回数组,所以外部的pyramid变量是undefined

下面是修改后的代码,既能把每一行内容存入数组,也能正常在页面渲染金字塔:

const pyramidOfAsterisks = function(val) {
  const arr = [];
  for (let m = 1; m <= val; m++) {
      if (m === 7) break;
      // 构建当前行的完整字符串
      let line = '';
      // 添加前置空格(用三个空格占位,页面显示时转成&nbsp;)
      for (let s = 1; s <= val - m; s++) {
          line += '   ';
      }
      // 拼接前半部分星号
      for (let n = 1; n <= m; n++) {
          line += '* ';
      }
      // 拼接后半部分星号
      for (let p = 2; p <= m; p++) {
          line += '* ';
      }
      // 将当前行存入数组
      arr.push(line);
      // 页面渲染当前行(把空格转成&nbsp;保证排版)
      document.write(line.replace(/ /g, '&nbsp;') + '<br />');
  }
  // 返回存储所有行的数组
  return arr;
} 

// 获取存储金字塔行的数组
const pyramid = pyramidOfAsterisks(12);
// 控制台查看数组内容
console.log('金字塔数组内容:', pyramid);
// 页面输出数组的结构化内容
document.write('<br>数组内容:' + JSON.stringify(pyramid));

关键修改说明:

  1. 新增line变量,把每一行的空格、星号先拼接成完整字符串,再推入数组
  2. 给arr.push()传入构建好的line,确保数组能存储每一行内容
  3. 函数末尾添加return arr,让外部可以获取到数组
  4. 页面渲染时把空格替换为&nbsp;,保证金字塔的排版对齐;控制台直接打印数组就能看到所有行的原始字符串

内容的提问来源于stack exchange,提问作者dheerajSan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:55:19