我正在使用一个脚本,该脚本动态地将类别名称与项目ID组合在一起。然后它将从与文件名匹配的文件夹中调用图像。它由文件路径,类别名称和项目ID组成,例如Banking-1.jpg,Banking-2.jpg等

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


现在,它仅返回诸如Banking-50.jpg之类的值,该值不存在任何图像。是否可以定义一个范围,使其可以返回的最大值为Banking-10.jpg?

最佳答案

您可以使用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"
}

09-13 03:21