我正在尝试将所有数组数字返回为负数 (* -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 }
-
您的
for
语句迭代(在正确的范围内以正确的间隔(,但分号位于行尾,它不执行任何操作。 -
然后返回负值
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]))