2017-12-13 17 views
-2

나는 2 등으로Javascript 개체 값이 증가합니까?

var jeremy = {loc:1}; 
 

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

 
console.log(move1(jeremy));

+1

코드가 잘 작동합니다. –

+0

@ chi 나는 당신이 혼란스러운 것 같아요. 이 경우 Post/Pre 증분은 아무 것도 변경해서는 안됩니다. – Epitouille

+0

@Epitouille 공정한 의견. removed mine – ochi

답변

0

move1()

var jeremy = {loc:1}; 
 

 
var move1 = function (car){ 
 
    car.loc++; 
 
    return(car.loc); 
 
}; 
 
console.log(move1(jeremy));
는 값을 반환하지 않으며, 당신이 원하는에 따라 설정 값을 변경 (증가) 할 필요가 없습니다. console.log()의 사용을 무시

단순히 값을 증가하려는 나 또한 move1()가 값을 반환을 가지고 있습니까?

기존 코드가 돌아 오지 않고 값을 증가시킬 때으로 잘 작동합니다. 그러나 업데이트 된 객체 대신 함수의 결과를 인쇄했습니다. move1()으로 전화하여 개체를 업데이트 한 다음 아래에 표시된대로 개체를 인쇄하십시오.

다시 원하는대로 개체를 업데이트하면 값을 반환 할 필요가 없습니다.

당신이 정말로뿐만 아니라 값을 반환 값을 증가시키고 아래로, 유사한 그것을 반환 할 경우

var jeremy = {loc:1}; 
 

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

 
move1(jeremy) 
 
console.log(jeremy.loc);
. Car.loc += 1도 작동하지만

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.locCar.loc++을 변경했습니다. 차이점은 return Car.loc++이 결과가 인 것을으로 되 돌리는 것과 같습니다.

예, var x = Car.loc++; return x;도 작동하지만 나는 ++x

x++ 사이의 차이가 여기에 주제에 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.

더 많은 정보를 볼 있다는 것을이 시점에서 강조하는 것이 중요하다고 생각
2

당신하여 Move1 기능이 아무것도 반환하지 않습니다 loc의 가치를 높이기 위해 내 코드에 어떤 문제가 있는지 알아낼 수 없습니다. 반환 값을 인쇄하려고합니다 (console.log). 당신은 당신은 당신의 함수에서 값을 반환 잊어 버린

+3

@ Jeremy1948 대답에 동의 함을 표시해야합니다. – sferret

+2

주석에 있어야합니다. –

+0

그 대답은 잘못되었습니다. 모든 함수 javascript는 무엇인가를 반환하고 이것은 항상 정의 - 정의되지 않은 것입니다. op는 그 값을 기대하지 않습니다. 왜냐하면 op는 뭔가 다른 것을 기대하고 있기 때문입니다. 질문에 언급되지 않았 으면 가능한 것은 객체 또는 증가 후의 값이 될 수 있습니다. –

-3

var jeremy = {loc:1}; 
 

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

 
console.log(move1(jeremy));

+0

왜 다른 사람들이 당신의 타임 스탬프와 코멘트를 대답하기 전에 분명히 보았던 해결책과 똑같은 해결책을 준 후에 당신 자신의 대답에 답하는 것입니까? –

0

대신 "jeremy.loc"의 값을 인쇄하려고합니다. 코드에서 jeremy.loc = 2 끝에 있지만 console.log 함수는 아무것도 반환하지 않기 때문에 아무것도 인쇄하지 않습니다. 다음은 반환 구문 코드 :

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

이것이'console.log()'가'undefined' OPs 코드가 이미 작동하고 있었던 이유를 해결하는 동안. 모든 OP는 'move1 (jeremy); console.log (jeremy.loc);'우리는 OP가'move1() '에서 무엇을 반환하기를 원하는지 모르지만 OP가 원래 코드가 이미 수행 한 값을 증가시키고 싶다는 것을 알고있다. – Nope