创建一个新数组并在一行中推送它 - Javascript OOP

时间:2017-11-21 10:17:52

标签: javascript jquery arrays

我的代码中有一个函数,其中我正在尝试定义一个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);

但失败了。代码有什么问题......

3 个答案:

答案 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;
}