jQuery,从变量中调用数组对象的一部分

时间:2016-03-08 13:18:02

标签: javascript jquery variables

我正在建立一个有一些选项的javascript系统。系统从JSON中提取信息。根据选项我想触发数组对象的特定部分,我不想使用eval()

通常我会这样做。

$.each(data.data, function () {
    console.log(this.images.small_image.src);
}

现在这样工作正常,直到我想使用变量来做,变量将替换“small_image”部分,可以是“large_image”,“scaled_image”等等。

所以我想做什么

var image_variable = 'small_image';
$.each(data.data, function () {
    console.log(this.images. + image_variable + .src);
}

我不确定这是否可行,但希望有人对此有一些想法?

3 个答案:

答案 0 :(得分:1)

不确定这是否是一个有效的问题,考虑到这是JavaScript的真正基础知识,但现在就去。

您可以通过在方括号[ 'key' ]内传递键来读取对象值。

var image_variable = 'small_image';

$.each( data.data, function( ) {
    console.log( this.images[ image_variable ].src );
} );

您应该确保首先定义密钥,但instanceof Object左右。这样可以避免脚本中的错误,并使您能够扩展自己的错误处理程序,以解释用户出了什么问题。

if ( this.images[ image_variable ] instanceof Object ) { }

答案 1 :(得分:0)

使用string.replace。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

var image_variable = 'small_image';
$.each(data.data, function () {
    console.log(this.images.src.replace(large_image, image_variable)); //something like that
}

答案 2 :(得分:0)

在JavaScript中,您可以通过字符串访问对象属性。话虽如此,这将完全相同:

this.images.small_image.src;
this[images.small_image].src;