>

그래서 이것은 정말로 내 신경에 걸리고 있습니다. 나는 이것을 여기에 조금 더 잘 설명해야했다. Google 콘솔에서 스크립트 로그를 특정 방식으로 만들려고합니다. 설명하는 데 도움이되는 이미지가 있습니다. 어서갑니다.

먼저, 이것이 현재 로깅 방법입니다. 지금까지는 좋았습니다. 나는 이것에 만족한다. 멋지고 깔끔한 하나의 큰 배열이 아닙니다. 아래 이미지 : ( https://i.gyazo.com/81fc8d76b34a81f4fff7fc23e94f1bf1.png )

이것은 마지막으로 방출 된 로그입니다 (위의 이미지에서 볼 수 있습니다). 로그에 필요한 방식으로 편집되었습니다. 와이즈 비즈

따라서 모든 로그를 그대로 보내려고합니다. ^^ 각 쌍 사이의 공백을 쉼표로 바꾸고 각 쌍에 "["와 "]"를 추가합니다.

그래서 어떻게 기록하고 싶습니까? (정말 도움) ( https://i.gyazo.com/af179df0b2ce93f018809f6921bce59a.png )

내 스크립트 :

[[346,453],[346,452],[346,452],[346,453],[346,453],[347,453],[347,453],[347,454],[348,454],[349,454],[350,454],[351,454],[352,454],[353,454],[354,454],[354,453],[355,452],[355,453]]

기억하세요 !!! 나는 그것이 하나의 큰 배열이되고 싶지 않습니다 !!!! 각각을 개별적으로 기록하는 방식은 완벽합니다. 각각의 기록 방식을 변경하기 만하면됩니다.

내 코드에서 xhr=new XMLHttpRequest(); xhr.open("GET", "http://myurl.com/someURLWITH.svg"); xhr.addEventListener("load", function() { const xmlDoc = new DOMParser().parseFromString( this.responseText.trim(), "image/svg+xml" ); const polylines = Array.from(xmlDoc.getElementsByTagName('polyline')); var Lines = (polylines.map( pl => pl.getAttribute('points').split(' ').map( pair => pair.split(',').map(x=>+x), console.log("[" + pl.getAttribute('points') + "]") ) )); }); xhr.send(); 를 볼 수 있습니다.  나는 이것을 console.log("[" + pl.getAttribute('points') + "]") 처럼 만들려고 노력했습니다.  정말이기도 트릭을 할 수 있지만 내가 잘못했다. 언제나처럼.

그래, 그냥 console.log("[" + pl.getAttribute("[" + 'points' + "]") + "]") 처럼 로깅하는 대신 ...이 [346,453 346,452 346,452 346,453 346,453 347,453 347,453 347,454 348,454 349,454 350,454 351,454 352,454 353,454 354,454 354,453 355,452 355,453] 처럼 로그를 남기고 싶습니다.  감사합니다.

[[346,453],[346,452],[346,452],[346,453],[346,453],[347,453],[347,453],[347,454],[348,454],[349,454],[350,454],[351,454],[352,454],[353,454],[354,454],[354,453],[355,452],[355,453]]
  • 답변 # 1

    코드가 거의 거기에 있었지만 콘솔에 로깅하는 것은 수정되지 않은 points 속성이기 때문에 어리 석었습니다

    그래서 이런 식으로

    const polylines = Array.from(xmlDoc.getElementsByTagName('polyline'));
    const Lines = polylines.map(pl => pl.getAttribute('points').split(' ').map(pair => pair.split(',').map(Number)));
    Lines.forEach(line => console.log(JSON.stringify(line)));
    
    

    또는 Array.from의 두 번째 인수가 맵 함수 인 경우 코드를 더 단순화 할 수 있습니다

    const Lines = Array.from(xmlDoc.getElementsByTagName('polyline'), pl => pl.getAttribute('points').split(' ').map(pair => pair.split(',').map(Number)));
    Lines.forEach(line => console.log(JSON.stringify(line)));
    
    

    참고 : console.log는 처리 후에 완료됩니다

    댓글은

    Lines.forEach(line => {
        // here you can post each line to whatever you need
    });
    
    

  • 답변 # 2

    이것을 시도해보십시오. 아마도 당신에게 도움이 될 것입니다.

    var dt = "346 453 346 452 346 452 346 453 346 453 347 453 347 453 347 454 348 454 349 454 350 454 351 454 352 454 353 454 354 454 354 453 355 452 355 453";
    function fnGetObject(data) {
        var objList = [];
        var obList = data.split(' ');
        var obResult = []
        for (var i = 0; i < obList.length; i += 2) {
            obResult.push([parseInt(obList[i]), parseInt(obList[i + 1])]);
        }
        return JSON.stringify(obResult);
    }
    console.log(fnGetObject(dt));
    
    

  • 이전 glibc - libc symbol 테이블의 vfprintf 크기가 너무 큰 이유는 무엇입니까?
  • 다음 node.js - 몽구스에서 여러 집계 연산자 사용