I've been trying to sort string inside an object which is inside an array. By splitting the string into array, I successfully sorted the array. I turn the array back to string afterwards. but later when I printed the result, the object inside the array was the same as before. Here is my code:
function merge(arr, needed_length){
for(var i = 0; i < arr.length; i ){
console.log(arr[i]['A1'].split(', ').sort(function(a, b){
return b - a;
}).join(', '));
console.log(arr[i]);
}
}
console.log(merge([{A1:'8, 7, 9'}, {A1:'4, 8, 6'}, {A1:'2, 4, 3'}], 5));
and here is the printed result:
9, 8, 7
{ A1: '8, 7, 9' }
8, 6, 4
{ A1: '4, 8, 6' }
4, 3, 2
{ A1: '2, 4, 3' }
Can someone help me to understand why the object doesn't change? Thank you in advance :)
CodePudding user response:
You need to assign the sorted string back to A1
:
function merge(arr){
for(let obj of arr){
obj.A1 = obj.A1.split(', ').sort((a, b) => b - a).join(', ');
}
return arr;
}
let arr = [{A1:'8, 7, 9'}, {A1:'4, 8, 6'}, {A1:'2, 4, 3'}];
merge(arr);
console.log(arr);