将数组数字设为负数



我正在尝试将所有数组数字返回为负数 (* -1(; 我被卡住了。请帮忙!

function makeListNegative (array){
for(i=0; i <array.length; i++);
return i * -1;
}
var negativeList = makeListNegative([7, 2, 3, 4]);
console.log(negativeList);

此函数仅将数组中的最后一个数字返回为 -4。我希望显示所有列表编号。

您需要将值映射到负值。

function makeListNegative(array) {
return array.map(x => x * -1);
}
var negativeList = makeListNegative([7, 2, 3, 4]);
console.log(negativeList);

function makeListNegative (array) {
for (i = 0; i < array.length; i++); // 1
return i * -1;                      // 2
}
  1. 您的for语句迭代(在正确的范围内以正确的间隔(,但分号位于行尾,它不执行任何操作。

  2. 然后返回负值i,这是数组的长度,而不是数组或具有所有负值的数组的值。


如果你想采用传统的方法,你可以将每次迭代中的值推送到一个新数组,并在迭代后返回新数组。

function makeListNegative(array) {
var i, l,
temp = [];
for (i = 0, l = array.length; i < l; i++) {
temp.push(-array[i]);
}
return temp;
}
var negativeList = makeListNegative([7, 2, 3, 4]);
console.log(negativeList);

您可以使用Array#map映射负值。

function makeListNegative(array) {
return array.map(v => -v);
}
var negativeList = makeListNegative([7, 2, 3, 4]);
console.log(negativeList);

你的代码

  • 每次迭代返回
  • 分号在错误的位置
  • 使索引为负数而不是数组项

本来可以这样修复的

function makeListNegative(array) {
for (var i = 0; i < array.length; i++) { // make i local
array[i] *= -1; // negate the array item
}
return array; // return the manipulated array
}
var negativeList = makeListNegative([7, 2, 3, 4]);
console.log(negativeList);

或者使用Array.map - 在标准JS中 - 胖箭头=>是ES6+,在IE中不起作用

var negativeList = [7, 2, 3, 4].map(function(num) { return -num })
console.log(negativeList);

你可以通过使用 ES6 语法给你的高级开发人员留下深刻印象:

const makeListNegative = array => array.map(num => -num)
const negativeList = makeListNegative([7, 2, 3, 4]);
console.log(negativeList);

如果您不想创建函数:

const negativeList = [7, 2, 3, 4].map(num => -num);
console.log(negativeList);

如果你在项目中使用 Babel 或 Typescript,你不需要担心 IE 支持,因为你的代码将被转译为 ES5,并且在所有浏览器上都受支持。

当您从for循环中return时,这将不起作用。尝试使用

Array.map((

您可以使用 map 返回负值

var negativeList=  [7, 2, 3, 4].map(function(value){
return -v;
})

既然大家都用map解决了问题,下面就是用[forEach][1]解决的方法,

var makeNeg = function(arr){
arr.forEach(function(value, index){
arr[index] = arr[index]*-1;
});
return arr;
}
console.log(makeNeg([7, 2, 3, 4]))