一个充满零的数组

问题描述

我正在用 JavaScript 编写一个程序,你输入一个数字 n,它返回一个数组 M,它是一个长度为 'n' 的列表,列表中的每个元素都是一个不同的列表 { {1}} 也是长度 ele 并且每个元素都为零。这是我的功能

n

我的问题是无论我如何尝试更改 var zeros=function(n){ var M=[]; var ele=[]; for (var q=0; q<n; q++){ ele.push[q]=0; } for (var p=0; p<n; p++){ M.push[p]=ele; } return M; }; 始终保持未定义状态。谁能告诉我为什么会发生这种情况以及如何解决它?

解决方法

你不能像这样使用 Array.push[x] 推送。如果您对数组使用 push,它总是将该项目放在数组的末尾 (https://www.w3schools.com/jsref/jsref_push.asp)。所以你可以使用:

ele.push(0);

ele[q] = 0

,
  1. create a non sparse Array of custom length
  2. map 每个数组项(未定义的值)转化为

function squareMatrix(n,value) {
  return Array

    // creates a non sparse,thus iterable,array 
    // which features n-times the undefined value.
    .from({ length: n })

    // thus,one can map over each item.
    .map((item,idx) =>

      // creates a sparse array of custom length `n` which
      // immediately after gets filled with the custom `value`.
      Array(n).fill(value)
    );
}

console.log(
  'squareMatrix(2,0) ...',squareMatrix(2,0)
);
console.log(
  "squareMatrix(3,'??')",squareMatrix(3,'??')
);
.as-console-wrapper { min-height: 100%!important; top: 0; }