我有一个像这样的数组变量:
dateArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
现在我想删除dateArray
的前12个元素。我尝试了下面的代码,但它仍然没有工作。我使用了splice
,但我不知道自己错过了什么。
if(dateArray.length>12){
for(var d= 0; d <12; d++){
dateArray.splice(d);
}
console.log(dateArray);
}
输出空数组:[]
我希望它只删除前12个,输出应该是:
[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
非常感谢任何帮助。
答案 0 :(得分:5)
您不需要for循环来执行此操作
for(var d= 0; d <12; d++){
dateArray.splice(d);
}
可能是
dateArray.splice(0, 12);
答案 1 :(得分:3)
dateArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
dateArray.splice(0,12);
document.body.innerHTML = JSON.stringify(dateArray);
答案 2 :(得分:0)
您也可以使用所需的值创建一个新数组。
dateArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
dateArray2 = [];
if(dateArray.length>12){
for(var i= 0; i < 12; i++){
dateArray2[i] = dateArray[i];
}
console.log(dateArray);
console.log(dateArray2);
}
Jsfiddle示例。
答案 3 :(得分:0)
您可以使用slice
函数删除数组元素。
slice():slice()
方法将数组的一部分的浅表副本返回到新的数组对象中。
var d2 = dateArray.slice(12, dateArray.length);
console.log(d2); // [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
答案 4 :(得分:0)
试试,这段代码
if(dateArray.length>12){
dateArray.splice(0, 12);
console.log(dateArray);
}
来源 - https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
答案 5 :(得分:0)
您所要做的就是:
dateArray = dateArray.slice(0,12);
答案 6 :(得分:0)
试试datearray.splice(0, 12)
。 0 =起始索引,12 =要删除的元素数量。
ref:splice()
祝你好运!
答案 7 :(得分:0)