2016-09-27 124 views
-2

我有一個數組的多個項目,選擇在陣列

var arr=[1,2,3,4,5,6,7,8,9,10]; 

我不知道數組是多久,我想3之後要選擇一切我該怎麼做呢?

+0

你可以像'arr.slice(arr.indexOf(3)+1)' – Redu

+0

@Redu我甚至擴展這個爲'arr.slice(arr.indexOf( 3)+1 || arr.length)'如果'arr'不包含3,則返回一個空的Array。雖然沒有明確要求。 – Thomas

+0

我必須投票,「不顯示任何研究工作」。 – TylerY86

回答

-1

在你例如,「3」位於索引二的插槽中。如果你想在第三個元素(索引二)之後的第一個函數會做到這一點。

如果你想在找到第一個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());

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

您拼接功能:

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]

+0

請務必澄清,這會修改原始集合。 – TylerY86

+0

發表了評論,謝謝 – Marcin

+0

@MarcinC。在我的情況下,用戶輸入數組。所以如果我不知道什麼時候是3,我該怎麼辦? – eclipseIzHere