删除JavaScript中数组的第一个元素/数组

删除JavaScript中数组的第一个元素/数组,javascript,arrays,Javascript,Arrays,我在删除数组的第一个元素时遇到问题 简而言之,如果我在控制台中显示阵列,它就是这样的: (11) [Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4)] 0 : (4) ["2017-09-20T16:00:00-07:00", 188.125, 0, 1] 1 : (4) ["2017-09-20T17:00:00-07:00",

我在删除数组的第一个元素时遇到问题

简而言之,如果我在控制台中显示阵列,它就是这样的:

(11) [Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4)]
0 : (4) ["2017-09-20T16:00:00-07:00", 188.125, 0, 1]
1 : (4) ["2017-09-20T17:00:00-07:00", 123.125, 0, 1]
2 : (4) ["2017-09-20T18:00:00-07:00", 114.25, 0, 1]
3 : (4) ["2017-09-20T19:00:00-07:00", 115, 0, 1]
4 : (4) ["2017-09-20T20:00:00-07:00", 113.25, 0, 1]
5 : (4) ["2017-09-20T21:00:00-07:00", 115.625, 0, 1]
6 : (4) ["2017-09-20T22:00:00-07:00", 114.75, 0, 1]
7 : (4) ["2017-09-20T23:00:00-07:00", 114, 0, 1]
8 : (4) ["2017-09-21T00:00:00-07:00", 112.625, 0, 1]
9 : (4) ["2017-09-21T01:00:00-07:00", 108.375, 0, 1]
10 : (4) ["2017-09-21T02:00:00-07:00", 111.125, 0, 1]
length : 11
__proto__ : Array(0)
我想删除第一个,
0
,我尝试使用
.shift()
,但没有成功

我的数组名为
myArray.data
,我尝试了
myArray.data.shift()
,得到了以下错误消息:

TypeError: Cannot read property '0' of undefined
    at bundle.js:1554
    at Function._.map._.collect (vendor.js:11761)
    at renderChart (bundle.js:1547)
    at bundle.js:1611
    at Scope.$digest (vendor.js:34716)
    at Scope.$apply (vendor.js:34986)
    at bundle.js:259
    at vendor.js:14387
    at _fulfilled (vendor.js:13992)
    at self.promiseDispatch.done (vendor.js:14021)
有什么办法解决这个问题吗

稍后编辑:

代码位于图表生成函数中,这是整个代码段:

data: {
    type: chartType,
    columns: [
        ['x'].concat(_.map(myArray.data, function (dataPoint) {

        const x = (myArray.data).shift();
        console.log(myArray.data);          
        console.log(x);

            return moment(dataPoint[0]).valueOf();
        })),
        ['Expected'].concat(_.map(myArray.data, function (dataPoint) {
            return dataPoint[1];
        })),
        ['Actual'].concat(_.map(myArray.data, function (dataPoint) {
            return dataPoint[1];
        }))
    ],
    x: 'x'
},

您可以使用z
myArray.data.splice(0,1)
删除第一个数组项,但错误表明您正在尝试将数组方法应用于未定义的值。可能$scope尚未收到该值

您可以使用z
myArray.data.splice(0,1)
删除第一个数组项,但错误表明您正在尝试将数组方法应用于未定义的值。可能$scope尚未收到该值

我可以使用Array.shift()重现所需的结果

让arr=[
[“2017-09-20T16:00:00-07:00”,188.125,0,1],
[“2017-09-20T17:00:00-07:00”,123.125,0,1],
[“2017-09-20T18:00:00-07:00”,114.25,0,1],
[“2017-09-20T19:00:00-07:00”,115,0,1],
[“2017-09-20T20:00:00-07:00”,113.25,0,1],
[“2017-09-20T21:00:00-07:00”,115.625,0,1],
[“2017-09-20T22:00:00-07:00”,114.75,0,1],
[“2017-09-20T23:00:00-07:00”,114,0,1],
[“2017-09-21T00:00:00-07:00”,112.625,0,1],
[“2017-09-21T01:00:00-07:00”,108.375,0,1],
[“2017-09-21T02:00:00-07:00”,111.125,0,1]
];
console.log(arr[0]);
arr.shift();

console.log(arr[0])我可以使用Array.shift()复制所需的结果

让arr=[
[“2017-09-20T16:00:00-07:00”,188.125,0,1],
[“2017-09-20T17:00:00-07:00”,123.125,0,1],
[“2017-09-20T18:00:00-07:00”,114.25,0,1],
[“2017-09-20T19:00:00-07:00”,115,0,1],
[“2017-09-20T20:00:00-07:00”,113.25,0,1],
[“2017-09-20T21:00:00-07:00”,115.625,0,1],
[“2017-09-20T22:00:00-07:00”,114.75,0,1],
[“2017-09-20T23:00:00-07:00”,114,0,1],
[“2017-09-21T00:00:00-07:00”,112.625,0,1],
[“2017-09-21T01:00:00-07:00”,108.375,0,1],
[“2017-09-21T02:00:00-07:00”,111.125,0,1]
];
console.log(arr[0]);
arr.shift();
console.log(arr[0])
问题在于要移位的数组中,请检查
myArray.data
是否包含数据,错误表示您正在尝试从未定义(null)对象中移位值

问题在于要移位的数组中,请检查
myArray.data
是否包含数据,错误表示您正在尝试从未定义(null)对象中移位值


你还有什么代码<代码>移位
我认为不应该给你这个错误。@putvande,我添加了它,看起来它在抱怨
数据点[0]
你的myArray在哪里?我看到了您的代码片段,但其中没有myArray。如果根据您显示的内容,您执行了myArray.data,那么您正在尝试对对象执行shift()。您还有什么其他代码<代码>移位
我认为不应该给你这个错误。@putvande,我添加了它,看起来它在抱怨
数据点[0]
你的myArray在哪里?我看到了您的代码片段,但其中没有myArray。如果根据您显示的内容,您执行了myArray.data,那么您正在尝试对对象执行shift()。在我的情况下,它不起作用。。。我添加了另一段代码。也许现在我的情况更清楚了它不起作用。。。我添加了另一段代码。也许现在更清楚了
.shift() is working fine. 
splice(0,1) also working fine