增加Javascript对象值?

时间:2017-12-13 16:22:27

标签: javascript object

我似乎无法弄清楚我的代码有什么问题,以便将loc的值增加到2等。



var jeremy = {loc:1};

var move1 = function (car){
  car.loc++;
};

console.log(move1(jeremy));




5 个答案:

答案 0 :(得分:2)

你的move1函数不会返回任何内容。您尝试打印(console.log)其返回值。 你应该尝试打印" jeremy.loc"的价值。代替

答案 1 :(得分:0)

您忘记在函数中返回值。 在你的代码中,最后是jeremy.loc = 2,但是console.log函数没有打印任何内容,因为move1没有返回任何内容。 这是带有返回语法的代码:



var jeremy = {loc:1};

var move1 = function (car){
  car.loc++;
  return(car.loc);
};
console.log(move1(jeremy));




答案 2 :(得分:0)

move1()不返回值,也不需要增加值,具体取决于您想要的值。

忽略console.log()的使用您是想简单地增加值还是move1() 来返回值?

您现有的代码工作正常,因为它会增加值,而不返回它。但是,您打印的是函数的结果而不是更新的对象。只需调用move1()即可更新您的对象,然后打印对象进行验证,如下所示。

同样,如果你想要的只是更新对象,则无需返回值。

var jeremy = {loc:1};

var move1 = function (car){
  car.loc++;
};

move1(jeremy)
console.log(jeremy.loc);

如果你真的想要返回值,请增加值并返回它,类似于下面的内容。

var jeremy = {loc:1};

var move1 = function (car){
    return ++car.loc; // returns 2 and increments loc to 2.
};

console.log(move1(jeremy)); // returns 2 , value after increment
console.log(jeremy.loc); // returns 2 as increment has happened.

请注意上一个示例我将Car.loc++更改为++Car.loc,但Car.loc += 1也可以。区别在于return Car.loc++返回结果之前它会增加,如下所示。

是的,var x = Car.loc++; return x;也有效但我觉得此时要强调++xx++

之间存在差异很重要

在此处查看有关该主题的更多信息Arithmetic operators - Increment++

var jeremy = {loc:1};

var move1 = function (car){
    return car.loc++; // returns 1 and not 2 but will increment loc to 2.
};

console.log(move1(jeremy)); // returns 1 , value before increment
console.log(jeremy.loc); // returns 2 as increment has happened.

答案 3 :(得分:0)

您的函数需要返回值,您可以使用++ car.loc而不是car.loc ++。 ++ car.loc将在return语句之前递增变量。编写car.loc ++会在返回后增加变量。快乐的编码!

 var jeremy = {loc:1};

 var move1 = function (car){
     return ++car.loc;
 };

 console.log(move1(jeremy));

答案 4 :(得分:-3)



var jeremy = {loc:1};

var move1 = function (car){
  car.loc++;
  return car;
};

console.log(move1(jeremy));