我正在寻找下面的任何替代方法来创建一个包含1到N的JavaScript数组,其中N仅在运行时已知.
var foo = [];
for (var i = 1; i <= N; i++) {
foo.push(i);
}
Run Code Online (Sandbox Code Playgroud)
对我而言,感觉应该有一种没有循环的方法.
任何人都可以给我一个带有多维输入数组的JavaScript示例/示例吗?希望你能提供帮助,因为我还是JavaScript新手.
就像输入2行和2列时一样,它的输出将是2行输入和2列输入.
像这样:
[input][input]
[input][input]
Run Code Online (Sandbox Code Playgroud) 我是新来的Javascript的世界里,有写非常基本的功能,修补和在下面的例子中被偶然事故,我不能确定为什么它的时候我不传递参数时,功能需求它的工作原理.
样本功能
function myfunction(x) {
alert("This is a sample alert");
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我调用该函数,myfunction();我将收到警报.为什么我没有传递参数时能够在没有任何错误或警告的情况下调用该函数?
编辑
我没想到这么多伟大的答案,我绝不在一个位置,但能说哪个答案是最好的所以我只能对请求人提出最好的答案,我会奖励接受该人.
我想在Javascript中创建一个二维数组,我将存储坐标(x,y).我不知道我将拥有多少对坐标,因为它们将由用户输入动态生成.
预定义的2d数组的示例:
var Arr=[[1,2],[3,4],[5,6]];
Run Code Online (Sandbox Code Playgroud)
我想我可以使用PUSH方法在数组的末尾添加一条新记录.
如何声明一个空的二维数组,这样当我使用我的第一个Arr.push()时,它将被添加到索引0,而push写入的每个下一个记录都将采用下一个索引?
这可能很容易做到,我只是JS的新手,如果有人能写一个我可以检查的简短工作代码片段,我将不胜感激.谢谢
两者之间有什么区别(如果有的话)
x = Array()
Run Code Online (Sandbox Code Playgroud)
和
x = new Array()
Run Code Online (Sandbox Code Playgroud)
我应该使用哪一个?
是否有任何标准方法将函数参数标记为在JavaScript中未使用,类似于在Ruby中使用下划线启动方法参数?
这不是我要问的问题,但我出乎意料地使用JavaScript数组搁浅了.我来自PHP背景,在看了几个网站后,我不是更聪明.
我正在尝试创建一个多维数组.
var photos = new Array;
var a = 0;
$("#photos img").each(function(i) {
photos[a]["url"] = this.src;
photos[a]["caption"] = this.alt;
photos[a]["background"] = this.css('background-color');
a++;
});
Run Code Online (Sandbox Code Playgroud)
错误消息:照片[a]未定义.我该怎么做呢?谢谢.
我想知道如何在固定长度的java脚本中声明二维数组,如,
var array = new Array[this.rows, this.columns];
Run Code Online (Sandbox Code Playgroud)
之后,我想得到每个维度的长度,如,
array[0].length; // i am assuming this would give me the first dimension like in C# array.GetLength(0);
array[1].length; // i am assuming this would give me the second dimension like in C# array.GetLength(1);
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏,谢谢.
是否有更短,更好的方法来生成'n'长度的2D阵列?
var a = (function(){ var i=9, arr=[]; while(i--) arr.push([]); return arr })();
a // [ [],[],[],[],[],[],[],[],[] ]
Run Code Online (Sandbox Code Playgroud)
**老派短途**:
var a = (function(a){ while(a.push([]) < 9); return a})([]);
Run Code Online (Sandbox Code Playgroud)
更新 - 使用ES2015
Array(5).fill().map(a=>[]); // will create 5 Arrays in an Array
// or
Array.from({length:5}, a=>[])
Run Code Online (Sandbox Code Playgroud)
清空2D数组(相当于节省内存)
function make2dArray(len){
var a = [];
while(a.push([]) < len);
return a;
}
function empty2dArray(arr){
for( var i = arr.length; i--; )
arr[i].length = 0;
}
// lets make a 2D array of 3 items …Run Code Online (Sandbox Code Playgroud) 我一直试图找到一种相当简洁的方法来设置一个空的多维JavaScript数组的维度,但到目前为止还没有成功.
首先,我尝试使用初始化一个空的10x10x10数组var theArray = new Array(10, 10 10),但相反,它只创建了一个包含3个元素的1维数组.
我已经弄清楚如何使用嵌套的for循环初始化一个空的10x10x10数组,但以这种方式编写数组初始化器非常繁琐.使用嵌套for循环初始化多维数组可能非常繁琐:是否有更简洁的方法在JavaScript中设置空多维数组的维度(具有任意多个维度)?
//Initializing an empty 10x10x10 array:
var theArray = new Array();
for(var a = 0; a < 10; a++){
theArray[a] = new Array();
for(var b = 0; b < 10; b++){
theArray[a][b] = new Array();
for(var c = 0; c < 10; c++){
theArray[a][b][c] = 10
}
}
}
console.log(JSON.stringify(theArray));
Run Code Online (Sandbox Code Playgroud)