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

jQuery, call part of an array object from a variable

本文关键字:对象 一部分 数组 调用 变量 jQuery      更新时间:2023-09-26

我正在构建一个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);
}

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

不确定这是否是一个有效的问题,考虑到这是 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 ) { }

使用 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
}

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

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