我的代码中有一个函数,其中我正在尝试定义一个array
然后在下一行推送它:
function Spot(value) {
this.x = null;
this.y = null;
this.values = [];
this.values.push(value);
}
我试过这个:
this.values = [].push(value);
和
this.values = (this.values || []).push(value);
但失败了。代码有什么问题......
答案 0 :(得分:3)
您缺少数组初始化语法:
this.values = [ value ];
在你的情况下,这将是:
var x = ([]).push("y");
此处有更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
代码:
x
看起来它应该生成一个数组并将值推送到它。它确实创建了数组,但是数组没有返回到1
,返回了数组的新长度,即DataItem
。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push
push()方法将一个或多个元素添加到数组的末尾,返回数组的新长度。 [强调我的]
答案 1 :(得分:2)
只需获取数组中的值。
System.setProperty("webdriver.gecko.driver", "C:\\your_directory\\geckodriver.exe");

答案 2 :(得分:1)
您创建阵列并将value
推送到它的方式是正确的。但由于它是在函数内部创建的,因此您需要以某种方式访问函数外部的this
对象。
由于您没有返回任何内容,因此可以将其称为构造函数。
var spot = new Spot()
function Spot(value) {
this.x = null;
this.y = null;
this.values = [];
this.values.push(value);
}
var spot = new Spot();
如果您不想将其称为构造函数,则只需返回this
对象。
function Spot(value) {
this.x = null;
this.y = null;
this.values = [];
this.values.push(value);
return this;
}