我有一个数组,
var arr=[1,2,3,4,5,6,7,8,9,10];
我不知道阵列有多长,我想在3之后选择所有内容。我该怎么做?
答案 0 :(得分:1)
使用.indexOf
查找索引3,然后使用.slice
查找该元素后的所有内容:
// find the index of the element 3
var indexOfThree = arr.indexOf(3);
// find everything after that index
var afterThree = arr.slice(indexOfThree + 1);
答案 1 :(得分:-1)
你拼接功能:
var a = [1,2,3,4,5,6,7,8,9,10];
var b = a.splice( 3, a.length );
alert (b); // [4, 5, 6, 7, 8, 9, 10]
alert (a); // [1, 2, 3]
答案 2 :(得分:-1)
在您的示例中,“3”位于索引2的插槽中。如果你想要第三个元素(索引2)之后的所有内容,那么第一个函数就会这样做。
如果您想要找到前3个后的所有内容,那么第二个函数就会这样做。
// This finds all content after index 2
Array.prototype.getEverythingAfterIndexTwo = function() {
if (this.length < 4) {
return [];
} else {
return this.slice(3);
}
}
// This finds the first 3 in the array and returns any content in later indices
Array.prototype.getEverythingAfterAThree = function() {
// returns array if empty
if (!this.length) return this;
// get the index of the first 3 in the array
var threeIndex = this.indexOf(3);
// if no 3 is found or 3 is the last element, returns empty array
// otherwise it returns a new array with the desired content
if (!~threeIndex || threeIndex === this.length-1) {
return [];
} else {
return this.slice(threeIndex + 1);
}
}
var arr=[1,2,3,4,5,6,7,8,9,10];
console.log(arr.getEverythingAfterIndexTwo());
console.log(arr.getEverythingAfterAThree());