Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<script src="https://fb.me/react-with-addons-15.1.0.js"></script>
<script src="https://fb.me/react-dom-15.1.0.js"></script>
<script src="https://fb.me/react-with-addons-0.13.3.js"></script>
</body>
</html>
 
const update = React.addons.update;
let array = [
  0,1,2,3,4,5
];
let changedArray = update(array, {
  $splice: [[0, 1], [1, 1]]
});
{/*
  원하는 결과 => [2, 3, 4, 5]
  틀린 결과 => [1, 3, 4, 5]
  
  문제 원인
  [0, 1]를 먼저 삭제 => [1, 2, 3, 4, 5]
  [1, 2, 3, 4, 5]에서 첫번째값을 삭제 => [1, 3, 4, 5]
  
  그래서 결과값이 [1, 3, 4, 5]가 나온다.
  
  $splice: [[0, 1], [1, 1], [2, 1]]를 실행하게 되면
  [0, 1, 2, 3, 4, 5] => [1, 2, 3, 4, 5]
  [1, 2, 3, 4, 5] => [1, 3, 4, 5]
  [1, 3, 4, 5] => [1, 3, 5]
  
  고로 배열값은 [1, 3, 5]
  
  해결방법
  그래서 index가 변수일 경우에는 -1, -2를 붙여서 실행
  $splice: [[0,1], [1-1, 1], [2-1, 1]]
*/}
print = (data) => {
  console.log(JSON.stringify(data, null, 2))
}
print(changedArray);
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers