Javascript数组从数组中的每个元素中减去一个值

时间:2016-03-19 21:18:35

标签: javascript arrays

我编写了以下代码,但我不知道它为什么不起作用。本质上,我试图从数组中的每个值中减去255,但是必须才能排序,其中255是第一个(我不能只做i - 255,它不会得到我的值我需要)。我也试过i + -255但没有用。

function makeReverse(original, output){
  for (i=0; i<original.length; i++) {
    output[i]=original[i]; //copy original array to output array
    if ((i % 4) !== 3) {
      output[i] = output[255 - i]; //why this is not working is beyond me the 
                                     values keep reading 0 for rgb
    }
  }
  console.log(output);
  return output;
}

3 个答案:

答案 0 :(得分:1)

最简单的方法是使用map。像这样:

original.map(function(element){
   return element - 255;
});

或者在ES6中:

original.map(element => element - 255);

或者,如果您只想在条件下减去该值:

original.map(function(value){
   if(value % 4 !== 3){
       return value - 255;
   } else {
       return value;
   }
});

检查here,了解map的工作原理。

答案 1 :(得分:0)

为什么从索引[i-255]中减去。 从像这样的值中减去它

        private bool validate_login(string user, string pass)
    {
        db_connection();
        MySqlCommand cmd = new MySqlCommand();
        cmd.CommandText = "Select * from miembros where usuario=@user and contraseña=@pass";
        cmd.Parameters.AddWithValue("@user", textBox1.Text);
        cmd.Parameters.AddWithValue("@pass", textBox2.Text);
        cmd.Connection = connect;
        MySqlDataReader login = cmd.ExecuteReader();
        if (login.Read())
        {

            connect.Close();
            return true;
        }
        else
        {
            connect.Close();
            return false;
        }
    }

答案 2 :(得分:0)

我认为你在寻找

&&

这会使您的输出数组与原始数组的顺序相反(对于索引不是3 mod 4的元素)。