2015-10-12 69 views
-1

我有範圍1000至1200年如何獲取數組之前/之後的值?

我要排除數字1002,1030和1040以及之前和之後他們這樣得到的範圍內:

1000 - 1001 
1003 - 1029 
1031 - 1039 
1041 - 1200 

我現在有這個,我可以輸入數字和讓陣列回來。

對於第二部分我用的jQuery插件,但我想我需要做別的東西能夠通過數組作爲參數。

此外,我不知道如何讓之前的範圍和exclusion

function range(first, second) { 
    list = [] 
    this.first = first; 
    this.second = second; 
    for (var i = first; i <= second; i++) { 
     list.push(i) 
    } 
    return list; 
} 
a = new range(1, 5) 
console.log(a + " this is the original list") 

exclusion = 3 //should be a array 

listExcluded = jQuery.grep(list, function (value) { 
    return value != exclusion; 
}); 

console.log(listExcluded + " this is value without excluded number") 
+0

嗨。請花一些時間來改善您的問題標題,因爲對於搜索該網站 –

+0

的人來說,這與您在其他任何語言中使用相同是沒有用的。 – Ritesh

+0

完成,編輯標題。 – Villemh

回答

1

下面是一個簡單的示例...也許可以通過JS專家進行優化。

function range(first, second) { 
 
    this.list = [] 
 
    this.first = first; 
 
    this.second = second; 
 
    for (var i = first; i <= second; i++) { 
 
     this.list.push(i) 
 
    } 
 
    return this.list; 
 
} 
 

 
var a = new range(1, 10) 
 

 
console.log(a + " this is the original list") 
 

 
var ec = [3,6]; // should be a array 
 

 
var b = [];  // new array holding the sliced arrays 
 
var start = 0; 
 

 
for (var i = 0; i <= ec.length; i++) { 
 
    
 
    if (i == ec.length) { 
 
    b.push(a.slice(start)) 
 
    
 
    } else { 
 
    b.push(a.slice(start,ec[i]-1)) 
 
    start = ec[i]; 
 

 
    } 
 
     
 
} 
 

 
for (var i = 0; i < b.length; i++) { 
 
    console.log("Array nr:" + (i+1) + ": " + b[i]) 
 
}

+0

是的,這工作正常,但我仍然缺少的部分,我將創建像子數組來保存排除之前和之後的值。 我的意思是在這裏我應該有以下數組: 1. [1,2,3,4,5,6,7,8,9,10] 2. [1,2] 3. [4, 5] 4. [7,8,9,10] 我需要陣列2-4排除的值之前/之後打印出範圍爲數字。 – Villemh

+0

@Villemh更新了我的答案,「b」變量是一個包含提取數組的數組,因此我添加了一個迭代「b」數組的循環,顯示它在那裏。 – LGSon

+0

對不起,這是正確的答案 – Villemh

0

後,你需要的是一個算法,不特定的Javascript,也不JQuery的東西。 嘗試類似的東西:

var initialList = range(1000, 1200); 
var exclusions = [1002, 1030, 1040]; 

var result = []; 
var currentSubList = []; 
initialRange.forEach(function (v) { 
    if (exclusions.indexOf(v) > -1) { 
     if (currentSubList.length > 0) { 
      result.push(currentSubList); 
      currentSubList = []; 
     } 
    } else { 
     currentSubList.push(v); 
    } 
}); 
if (currentSubList.length > 0) { 
    result.push(currentSubList); 
} 
相關問題