2014-07-21 2 views
0

카테고리 이름과 항목 ID를 동적으로 결합하는 스크립트를 사용하고 있습니다. 그런 다음 파일 이름과 일치하는 폴더의 이미지를 호출합니다. 파일 경로, 카테고리 이름 및 항목 ID로 구성됩니다. 은행-1.JPG, 은행-2.JPG 등1 - 10 범위의 숫자 ID 생성

var f = { 
      image: "/img/" + this.item.Categories[0].Category + "-" + this.itemId + ".jpg" 
} 

는 지금 그냥 기존 이미지가없는있는 은행-50.jpg, 같은 값을 반환합니다. 범위를 정의하여 리턴 할 수있는 최대 값이 Banking-10.jpg가되도록 할 수 있습니까?

+0

'this.itemId'는 어디에서 왔습니까? –

+0

Json을 통해 반환하는 항목이 있습니다. 'this.temId'는 배열의 각 항목에 대한 ID입니다. – nouptime

+0

숫자를 반환하는 코드를 변경하려고합니까, 아니면 10 이상으로 반환하면 10을 사용합니까? –

답변

1

Math.minMath.max 기능으로 정수를 제한 할 수 있습니다. 다음 예제를 참조하십시오.

var f = { 
      image: "/img/" + this.item.Categories[0].Category + "-" + Math.min(Math.max(this.itemId, 0), 10) + ".jpg" 
} 

this.itemId 당신이 parseInt으로 정수로 캐스팅 할 필요가있는 경우에 문자열,하지 않는 한이 작동합니다.

var f = { 
      image: "/img/" + this.item.Categories[0].Category + "-" + Math.min(Math.max(parseInt(this.itemId,10), 0), 10) + ".jpg" 
} 

원한다면 이와 같이 도우미 기능을 정의 할 수 있습니다.

function capToRange(i, min, max) 
{ 
    return Math.min(Math.max(i, min), max); 
} 

그리고 이렇게 사용하십시오.

var f = { 
      image: "/img/" + this.item.Categories[0].Category + "-" + capToRange(this.itemId, 0, 10) + ".jpg" 
} 
+0

Perfect! 'item.itemId'는 정수이므로 첫 번째 메소드가 작동했습니다. 고맙습니다. – nouptime