Javascript square all element in array not working

前端 未结 3 1149
没有蜡笔的小新
没有蜡笔的小新 2021-01-29 13:36
function square(arr) {
   var result=[].concat(arr);
   result.forEach(function(i){
      i=i*i;
      console.log(i);
   })
   return result;
 }
var arr=[1,2,3,4];
cons         


        
相关标签:
3条回答
  • 2021-01-29 13:43
    • Re-assigning that value to i won't update the original array.

    • You don't need to concat that array, just initialize that array as empty [].

    • Add every square value to the new array.

    function square(arr) {
      var result = [];
      arr.forEach(function(i) {
        i = i * i;
        result.push(i);
      });
      return result;
    }
    var arr = [1, 2, 3, 4];
    console.log(square(arr))

    0 讨论(0)
  • 2021-01-29 13:56

    You could define a square function for a single value as callback for Array#map for getting a squared array.

    function square(v) {
        return v * v;
    }
    
    var array = [1, 2, 3, 4];
    
    console.log(array.map(square));

    0 讨论(0)
  • 2021-01-29 13:59

    forEach is iterating the array but it is not returning anyvvalue.Use map function which will return a new array with updated result

    function square(arr) {
      return arr.map(function(i) {
        return i * i;
      })
    
    }
    var arr = [1, 2, 3, 4];
    console.log(square(arr))

    If you still intend to use forEach push the updated values in an array and return that array

    0 讨论(0)
提交回复
热议问题