![](/img/trans.png)
[英]How do I convert an array into an object within array - Angular and Javascript
[英]How do I select a JavaScript Object Array within an Object Method
如何从我的randomImage.imagePicker方法中选择randomImage.images数组中的字符串?
(function() {
var randomImage = {
images : [
'http://placehold.it/100x100',
'http://placehold.it/200x200',
'http://placehold.it/300x300',
'http://placehold.it/400x400'
],//images Array
imagePicker : function () {
return console.log(randomImage.images[2]);
}()//imagePicker Method
}//randomImage Object
})()
我在控制台中收到以下错误:
未捕获的TypeError:无法读取未定义的属性“图像”
或者,如果您想指定要获取的randomImage的索引,请执行以下操作:
imagePicker : function (idx) {
return randomImage.images[idx];
}
randomImage.imagePicker(1)
将返回http://placehold.it/200x200
我在控制台中收到以下错误:
Uncaught TypeError: Cannot read property 'images' of undefined
问题是您在函数定义之后有()
:
imagePicker : function () {
return console.log(randomImage.images[2]);
}()//imagePicker Method
^^
这将立即调用该函数并将其返回值分配给imagePicker
。 但是目前, randomImage
还没有初始化。 它的值仍未undefined
,这就是为什么会出现该错误的原因。
删除括号以分配函数本身(我想这就是您想要做的):
imagePicker : function () {
return console.log(randomImage.images[2]);
}
如果您只希望它从images
数组返回随机图像:
imagePicker : function () {
var index = Math.floor(Math.random() * randomImage.images.length);
return randomImage.images[index];
}
使用索引可以只返回特定的图像:
imagePicker : function () {
// index 0 returns 'http://placehold.it/100x100'
return randomImage.images[0];
}
this
是一个神奇的词:
(function() {
var randomImage = {
images : [
'http://placehold.it/100x100',
'http://placehold.it/200x200',
'http://placehold.it/300x300',
'http://placehold.it/400x400'
],//images Array
imagePicker : function () {
alert(this.images[2]);
}//imagePicker Method
}//randomImage Object
randomImage.imagePicker();
})();
请注意,在自动功能之外, randomImage
变量不可用!
在这里摆弄
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.