JavaScript: Array reverse and join is not working as expected for empty tokens in join() method

javascript reverse array without modifying
reverse an array in javascript without reverse function
javascript join
reverse array using for loop javascript
javascript map join
javascript split string by comma
reverse array java
join node js

I am trying to reverse a string and applying join() method on the reversed contents in JavaScript. The join works properly when I use "-" or any other symbol in the join() method. But when I use just ("") or (" ") , it simply joining original array and not the reversed one. Please help me to understand the actual behavior.

Consider the below code.

var a = [1,2,3]; //actual array
console.log(a.reverse().join("-")); // working as expected. output: "3-2-1"
console.log(a.reverse().join(""));  //not working as expected. output:"123"

Reverse mutates original array

The reverse() method reverses an array in place. The first array element becomes the last, and the last array element becomes the first.

You can make a shallow copy in this case and than use reverse

var a = [1,2,3]; //actual array
console.log([...a].reverse().join("-")); // working as expected. output: "3-2-1"
console.log([...a].reverse().join("")); 

Array.prototype.reverse(), The first array element becomes the last, and the last array element becomes The reverse() method reverses an array in place. expected output: "reversed:" Array ["three", "two", "one"] Objects which do not contain a length property reflecting the last in a Array.prototype.join() � Array.prototype.sort()� Written by Maciej Cieślar ️. To use a method on a given array, we type [].methodName.They are all defined in the Array.prototype object. Here, however, we won’t be using these; instead, we’ll define our own versions starting from the simple method and build up on top of these until we get them all.

reverse reverse the elements in the original array.

The reverse method transposes the elements of the calling array object in place, mutating the array, and returning a reference to the array.

var a = [1,2,3]; //actual array
console.log(a.reverse().join("-")); // working as expected. output: "3-2-1"
console.log(a.join(""));  //working as expected. output:"321"

String.prototype.split(), The split() method divides a String into an ordered list of substrings, puts expected output: Array ["The quick brown fox jumps over the lazy dog."] 14 Warning: When the empty string ( "" ) is used as a separator, the string is not split by split() returns an array on which reverse() and join() can be applied. For arrays of numbers, refer to our previous post on sorting array of numbers. Sorting strings can get quite opinionated because of how the sort method works. First of, the ECMAScript standard does not specify a particular sorting algorithm, it all depends on each browser vendor. Second, casing plays a vital role when sorting.

It's only a problem of working on the same array and doing two times the reverse operation. Let's try doing this:

var a = [1,2,3]; 
const reversedArr = a.reverse();
console.log(reversedArr.join("-")); 
console.log(reversedArr.join(""));  

javascript join method Code Example, Get code examples like "javascript join method" instantly right from your google search results with the Grepper Chrome Extension. expected output: "Fire-Air- Water". 13 var colorsArray=colorsString.split(","); //split colorsString into array;. 4 Your browser does not currently recognize any of the video formats available. The difference between Array.of() and the Array constructor is in the handling of integer arguments: Array.of(7) creates an array with a single element, 7, whereas Array(7) creates an empty array with a length property of 7 (Note: this implies an array of 7 empty slots, not slots with actual undefined values). I didn't know this method either!

.join not working as expected - JavaScript, Why does .join not work by itself but works when embedded within a console. log(chars); chars.reverse(); console.log(chars); chars.join(''); The join method returns a new string and does not change the original array. Notes: do not use this as a general method. Instead, use Array.prototype.reduce.call() when wanting to apply to non-StringArray objects. StringArray.prototype.reduceRight( clbk[, initialValue] ) Executes a function against an accumulator and each StringArray element to return a single value.

String.split option to ignore empty parts?, Whilst on this subject, would it not be best if the split(. split() is the inverse of join(). indeed an array of 3 empty strings, because joining 3 empty strings would accommodate both our illusions of how it ought to work :) trim(), replaceMatching and other regexp methods they are VERY POWERFUL. Arrays do not belong to this list because they are objects as well. This is a common confusion among developers who assume that arrays are a special data type in Javascript. The items in the array are nothing more than properties of that objects. You can use any name as property for an objects, including numbers or even empty string.

Reverse a String in JavaScript, There are many methods to reverse a string in JavaScript some of if given string is empty or just have one character or it is not of string Use join() prebuilt function in JavaScript to join the elements of an array into a string. In real life arrays of objects is a common thing, so the find method is very useful.. Note that in the example we provide to find the function item => item.id == 1 with one argument.

Comments
  • As written ind the documentation developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… "Reverse is destructive. It also changes the original array."
  • just adding to the first comment... So you reversed your array two times... making it look like the second a.reverse() didn't work properly, while it reversed already reversed array
  • a.slice().reverse() is better I think rather than creating a shallow copy.
  • @MaheerAli that does the same thing only slice