목표는 2 차원 자바 스크립트 배열에 동적 'sum'행을 만드는 것입니다. 여기에 출발점입니다 :defineProperty를 통해 javascript에 배열을 추가하는 것이 더 좋은 방법일까요?
var m = [[1,2,3], [4,5,6]];
따라서 우리는 세 번째 행을 추가 할 수 있습니다
Object.defineProperty(m, 2, { get:() => m[0].map((e, i)=> e + m[1][i]) })
그래서 지금 우리의 배열이 작동
[[1,2,3], [4,5,6], [5,7,9]]
입니다! m[0][0]=10
을 설정하고
[[10,2,3], [4,5,6], [14,7,9]]
정확히 내가 원하는 것입니다. m.length = 3
이 예상대로이므로 합계 행이 배열의 일부로 처리됩니다. JSON.stringify
도 예상대로 작동합니다. (나는 약간 놀랐다 그것이 tbh를 움직이게했다).
제 질문은 defineProperty
에 의지하지 않고 다른 부품에 종속 된 2 차원 어레이의 부품을 생성하는 방법이 있습니까? 이것은 피할 수있는 것이 있습니까?
참고 - 내 원래의 질문에서 나는 위의 작업을 수행 한 다음 m[2]
을 다른 것으로 변경했습니다. '속성'이 배열 구성원을 우회하여 혼란을 겪었습니다.이 자체로 사용하지 않는 이유가 될 수 있습니다. 위의 방법. Apolgies)
더 많은 코드가 표시되어야합니다. 함수가 실행되고있는 곳. –
당신은'[[1, 2, 3], [4, 5, 6], [5, 7, 9]] '를하기 전에'm [2] = m [2]()'를 호출하고 있습니다. – Marcs