在javascript中对数组中的每个数字进行平方

时间:2013-10-28 21:14:23

标签: javascript

我正在尝试对数组中的每个数字进行平方,而我的原始代码不起作用。我查找了另一种方法,但我想知道为什么原始代码不起作用。

原始代码:

function(arr) {

    ret= [];            

    for (var i = 0, len = arr.length; i < len; i++) {
        root = Math.sqrt(arr[i]);
        ret.push(root);
    }

    return ret;
}

工作代码:

function(arr) {

    ret= [];

    for (var i = 0, len = arr.length; i < len; i++) {
        ret.push(arr[i] * arr[i]);
    }

    return ret;     
}

14 个答案:

答案 0 :(得分:16)

Math.sqrt为您提供平方根,而不是数字的平方。将Math.pow2的第二个参数一起使用。

答案 1 :(得分:13)

那怎么样?

function (arr) {
  return arr.map(function (x) {
    return Math.pow(x, 2);
  });
}

Array.map(func)将函数应用于地图的每个元素,并返回由新值组成的数组。 Math.pow(base, exp)base提升为exp权力。

答案 2 :(得分:4)

第一个样本采用平方根,而不是平方值。要想要使用

Math.pow(arr[i],2);

答案 3 :(得分:1)

原始代码采用值的平方根。第二个版本是将值与自身相乘(对其进行平方)。这些是逆操作

答案 4 :(得分:1)

以下是使用名为.forEach

的简单方法完成的方法
var numbers = [1,2,3,4,5,6,7,8];
numbers.forEach(function(element, index, array){
    array[index] = element* element;
});
console.log(numbers);

答案 5 :(得分:1)

以下是用 ES6 写的函数**):

let arr = [1, 6, 7, 9];
let result = arr.map(x => x ** 2);
console.log(result);

答案 6 :(得分:0)

使用嵌入式for,语法相当:

      var arr=[1,2,3,4] ;
      [for (i of arr) i*i ]; 

      //OUT : > [1,4,9,16]

答案 7 :(得分:0)

声明性编程:)

let list = [1,2,3,4,5,6,7,8,9,10];
let result = list.map(x => x*x);
console.log(result);

答案 8 :(得分:0)

避免不必要的循环,使用map()函数

let array = [1,2,3,4,5];
function square(a){            // function to find square
  return a*a;
}
arrSquare = array.map(square);    //array is the array of numbers and arrSquare will be an array of same length with squares of every number

您可以将代码缩短为:

let array = [1,2,3,4,5];
arrSquare = array.map(function (a){return a*a;});

答案 9 :(得分:0)

在javascript中对数组中的每个数字求平方的最佳方法

Array.prototype.square = function () {
    var arr1 = [];
    this.map(function (obj) {
        arr1.push(obj * obj);
    });
    return arr1;
}
arr = [1, 6, 7, 9];
console.log(arr.square());
arr1 = [4, 6, 3, 2];
console.log(arr1.square())

答案 10 :(得分:0)

我希望这能回答你的问题

from collections import OrderedDict

test_dict = {}

ordered_dict = OrderedDict(sorted(test_dict.items(), key=lambda t: t[0]))
已解决 kiss-barnabas

答案 11 :(得分:-1)

function squareDigits(num){
  //may the code be with you
  var output = [];
  var splitNum = num.toString();
   for(var i = 0; i < splitNum.length; i++){
     output.push(splitNum.charAt(i))
    }

   function mapOut(){
    var arr = output;
    return arr.map(function(x){
        console.log(Math.pow(x, 2));
    })
   }
   mapOut();
}

squareDigits(9819);

这应该有效

答案 12 :(得分:-1)

这将有效

const marr = [1,2,3,4,5,6,7,8,9,10]; console.log(marr.map((x) => Math.pow(x, 2)));

答案 13 :(得分:-1)

function map(square,a) {
  var result = [];
  for(var i=0;i<=a.length-1;i++)
   result[i]=square(a[i]);
  return result;
}

var square = function(x) {
   return x*x;
}

var value=[1,2,3,4];
var final= map(square,value);
console.log(final);

您也可以尝试上面的代码段。