当我传递参数时,它会调用一个错误,当我传递一个空数组时,它会调用一个空数组

时间:2016-05-27 05:15:25

标签: javascript arrays

当我传递参数时,它会调用一个错误(无法读取未定义的属性“map”),当我传递一个空数组时,它会调用一个空数组:)

Array.prototype.square = function() {
  return [].map((number) => number^2)
}

var numbers = [1, 2, 3, 4, 5];

console.log(numbers.square())

2 个答案:

答案 0 :(得分:1)

使用Math.pow()

Array.prototype.square = function() {
  return this.map(function(item) {
    return Math.pow(item, 2);
  });
}
var numbers = [1, 2, 3, 4, 5];
console.log(numbers.square())

答案 1 :(得分:1)

您正在空数组上应用 map() ,因此它将始终返回空数组,而是使用this来引用数组。使用 Math .pow() 来获得数组元素的平方。

Array.prototype.square = function() {
  return this.map((number) => Math.pow(number, 2))
}
var numbers = [1, 2, 3, 4, 5];

console.log(numbers.square())

JavaScript中的

仅供参考: ^ (caret symbol) using for bitwise XOR,请参阅:What does the caret symbol (^) do in JavaScript?