我正在尝试对数组中的每个数字进行平方,而我的原始代码不起作用。我查找了另一种方法,但我想知道为什么原始代码不起作用。
原始代码:
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;
}
答案 0 :(得分:16)
Math.sqrt
为您提供平方根,而不是数字的平方。将Math.pow
与2
的第二个参数一起使用。
答案 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)
答案 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]))
答案 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);
您也可以尝试上面的代码段。