Problem
I am trying to push a returning variables value into an array. This is my code, however I'm returning an empty array and am not sure what's wrong.
JavaScript
var my_arr = [];
function foo() {
var unitValue = parseFloat($('#unitVal1').val());
var percentFiner = parseFloat($('#percent1').val());
var total = unitValue * 1000;
return my_arr.push({
unit: unitValue,
percent: percentFiner
});
}
Peter Mortensen
31.3k22 gold badges110 silver badges134 bronze badges
2 Answers 2
return my_arr.push({
unit: unitValue,
percent: percentFiner});
This isn't returning the new Array - this is returning the new length of the Array! Split these out:
my_arr.push({
unit: unitValue,
percent: percentFiner});
return my_arr;
user4040648
6898 silver badges17 bronze badges
answered Jul 20, 2016 at 17:45
tymeJV
105k14 gold badges165 silver badges158 bronze badges
Sign up to request clarification or add additional context in comments.
1 Comment
Naftali
or even
return my_arr.push(...) && my_arr; would work too ;-)Array.push returns a length of the changed array, not the array itself
answered Jul 20, 2016 at 17:45
Naftali
147k41 gold badges248 silver badges304 bronze badges
Comments
lang-js
micronConvhere.my_arr?