使数组编号为负

时间:2018-08-13 16:52:02

标签: javascript arrays function negative-number

我正在尝试将所有数组号返回为负数(* -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。我希望显示所有列表编号。

7 个答案:

答案 0 :(得分:3)

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);

答案 1 :(得分:3)

您的代码

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

它本可以像这样解决

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);

答案 2 :(得分:2)

您需要将值映射为负值。

function makeListNegative(array) {
  return array.map(x => x * -1);
}

var negativeList = makeListNegative([7, 2, 3, 4]);

console.log(negativeList);

答案 3 :(得分:0)

当您从return循环中for进入时,此方法将无效。尝试使用

Array.map()

答案 4 :(得分:0)

您可以使用map返回负值

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

答案 5 :(得分:0)

由于每个人都使用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]))

答案 6 :(得分:0)

您可以使用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);