2011-09-07 7 views
0

자바 스크립트 파일에 44,000 개가 넘는 매우 큰 배열이 있습니다.자바 대용량 2D 객체 배열

내 문제는 파일을 편집하는 것이 절대적으로 끔찍한 것입니다 (특히 배열에서 각 객체 1 값을 이동해야하는 경우).

csv 파일을 시도했지만 텍스트를 내 개체로 사용할 수 없습니다. 나는 XML과 JSON을 고려해 봤지만 편집 문제를 해결하지 못했다.

2 차원 어레이를 테이블과 같이 처리하거나 본질적으로 객체 배열을 만들고 테이블과 유사하게 편집 할 수있는 javascript 편집기가 필요합니다.

감사합니다.

+4

왜 자바 스크립트 파일을 데이터베이스로 사용하고 있습니까? 문제는 파일이 대부분의 텍스트 편집기에 비해 너무 크다는 것입니다. 데이터를보다 효율적으로 저장하는 방법을 고려해야합니다. 악몽처럼 들리며 편집/유지 관리해야합니다. –

+0

"탁자"와 같은 것은 무엇을 의미합니까? 소스 코드를 관리하는 데 어려움을 겪고 있으며 스프레드 시트 (또는 Word 표)를 소스 코드의 레이아웃과 같이 사용하여 개별 개체를 쉽게 편집 할 수 있고 특정 개체를 쉽게 삭제할 수 있고 아래의 것들은 배열 내에서 위로 움직이게됩니다 (또는 모든 것이 오른쪽으로 움직입니다)? – nnnnnn

+0

@ Chris 나를 믿으십시오, 편집/유지하는 것은 악몽입니다. 나는 학기 사이에 약간의 재미있는 프로젝트로 이것을했다. 그리고 나의 학교는 나에게 그것과 함께 약간의 재료를하는 돈을 제공했다. 문제는 1 학년 학생으로서 확장성에 대한 계획이 없었습니다. @nnnnnnn 기본적으로 엑셀 시트처럼. 수평 방향과 수직 방향 모두에서 값 등을 쉽게 이동할 수 있습니다. – Sraaz

답변

1

확인 : 우선 무엇을하고 싶습니까? 원본 파일에 44,000 개의 개체가 하드 코드 되었습니까? 어쨌든 44,000 개의 물체를 가지고있는 이유는 무엇입니까? 어쨌든

...

, 표준 JS 스크립트 파일이 편집을 할 Excel 스프레드 시트를 사용하는 것입니다 생산에 소스 데이터를 저장 여전히 편집 문제를 해결하지만, 나는 제대로 요구 사항을 이해하고 내 제안을 가정 표준 Excel 형식을 사용하고 IDE 매크로에서 컴파일 단추를 누르는 것과 같은 버튼을 누르면 원하는 JS 파일 출력을 생성 할 수 있습니다. 진지하게. 배열에서 물건을 움직일 수있는 멋진 비주얼 편집기, 삭제시 셀을 이동하는 것, 엑셀이 인 모든 종류가 좋은 것 같아 보입니다. at. 스프레드 시트에서 데이터를 가져 와서 올바른 JavaScript 배열 선언을 사용하여 JS 파일로 출력해야하는 VBA 매크로는 20 ~ 30 줄을 넘지 않아도되며 기본적으로 간단한 중첩 for 루프를 사용해야합니다. 쓰기 등을 위해 파일을 여는 초기화 작업이 필요합니다.

자바 스크립트에는 다차원 배열이 없습니다. 각 하위 배열의 길이가 같고 객체가 포함 된 배열 배열을 원한다고 가정합니다.

var myObjectArray = [ 
    [ {id:1}, {id:2}, {id:3}, {id:4} ], 
    [ {id:5}, {id:6}, {id:7}, {id:8} ], 
    [ {id:9}, {id:10},{id:11},{id:12} ], 
    [ {id:13},{id:14},{id:15},{id:16} ] 
]; 

그것은 엑셀에서 그런 일을 생산하기 쉽습니다 : 원하는 출력 JS 파일 (훨씬 더 큰 제외)이 같은입니다.

+0

의심의 여지없이이 문제를 해결할 더 좋은 방법이있을 것입니다. 그리고 그것은 꽤 학습 경험이었습니다. 그것은 내가 상상했던 것보다 더 큰 규모의 학교와 학교에서 픽업 한 작은 프로젝트였습니다. 나는 확실히 VBA를 살펴보고 탁월 할 것입니다. 나는 아직 내 연구에서 비슷한 것을 해본 적이 없기 때문에 그것에 의지하고 싶지는 않지만 배울 것이 좋을 것이라고 생각한다. 너무 어렵지 않아야합니다. 감사. – Sraaz

+0

마지막으로 Excel VBA를 작성한 이후로 여러 해가되었습니다. 그러나 수출 및 가져 오기 유형의 작업을 수행 했으므로 쉽게 사용할 수 있습니다. Excel에는 자체 DOM 개념이 있으므로 중첩 된 루프에서 'Worksheets [ "myworksheet"] .Cells (x, y) .Value'와 같은 작업을 수행 할 것입니다. 네가 알아낼거야. 기다리는 경우 질문에 대한 더 나은 답변을 얻을 수도 있지만 어느 쪽이든 돌아와서 _ 대답을 받아 들여야합니다. – nnnnnn