Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have arrays like this one below.

[1,2,3, 10, 15, 24,25,26,27]

What I want is to filter out the non consecutive numbers excluding the first number in a series but keeping the last in a series like this below.

[2,3, 25,26,27]

I am new to coding and I'm not sure how to write this code yet but I have mocked up pseudocode, would you check this and see if my logic is on track?

Var startArray = [1,2,3, 10, 15, 24,25,26,27];

Var endArray = [ ];

Loop: while there are numbers left in the start array ?
?GET: The first number of the startArray

IF: the first number is 1
?MOVE: to next number in the array

IF: the current number + 1 in the array subtracted by the current number -1 in the array === 2
?PUSH: current number into endArray

ELSE IF: the current number -1 ===1
?PUSH: current number into endArray

END IF

END LOOP

Thank you for your help.

question from:https://stackoverflow.com/questions/66067826/is-it-possible-to-filter-consecutive-numbers-from-an-array-in-javascript

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
501 views
Welcome To Ask or Share your Answers For Others

1 Answer

You will just have to loop over everything and simply check, if the current number is one higher than the previous number. If so, push it to your resulting array:

var startArray = [1, 2, 3, 10, 15, 24, 25, 26, 27];
var endArray = [];

for(var i = 0; i < startArray.length; i++) {
  if(startArray[i] - 1 === startArray[i - 1]) {
    endArray.push(startArray[i]);
  }
}

$.writeln(endArray); // => 2, 3, 25, 26, 27

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...