2016-11-12 1 views
-2

속성을 전달하고 필터링 할 수있는 함수에 특정 객체의 속성을 필터링하는 함수를 다시 작성하려고합니다.javascript - 사용하지 않은 인수 'idtype'은 .map() 함수에서 호출되었지만

이 초기 함수 :

function filterCategory(xmlObject, id) { 
    let newData = []; 
    xmlObject 
     .Sports[0] 
     .Sport[0] 
     .Category 
     .map(function (category) { 
     if (category.$.CategoryID == id) { 
      newData.push(category); 
     } 
     }); 
    xmlObject 
     .Sports[0] 
     .Sport[0] 
     .Category = newData; 
    return xmlObject; 
} 

이 나의 새로운 기능입니다 : 내 린터가되지 않는 idtype 2 번째 함수의

function filterProperty(xmlObject, property, idtype, id) { 
    let newData = []; 

    if(xmlObject.hasOwnProperty(property)) { 
    xmlObject.property.map(function(value) { 
     if(value.$.idtype == id) { 
     newData.push(value); 
     } 
    }); 
    xmlObject.property = newData; 
    } 
    return xmlObject; 
} 

. 내 함수가 인수에 액세스 할 수 있습니까, 아니면 map() 함수에서 호출하려고하기 때문에 실패할까요? 그렇다면 어떻게 이것을 피할 수 있습니까?

+0

W '함수가 그것을 사용하지 않는다면'idtype' 매개 변수가 있습니까? – JJJ

+0

if (value. $. idtype == id) { –

+0

이것은 JSON과 아무 관련이 없습니다. 'json' 태그의 사용법 설명을 읽으십시오. – trincot

답변

0

idtype을 동적 개체 속성으로 사용하려는 경우 my.object.idtype과 같이 사용할 수 없으므로 문자 그대로 "idtype"이라는 개체의 속성을 찾습니다. 대신 괄호 표기법을 사용하여 속성 액세스

value.$[idtype]; 

또한 그림 :

var obj = { one: 1, two: 2, three: 'foobarbaz' }; 
 

 
function getThingFromObject(mything) { 
 
    return obj[mything]; 
 
} 
 

 
console.log(getThingFromObject('one')); // 1 
 
console.log(getThingFromObject('three')); // 'foobarbaz' 
 

 

관련 문제