Javascript数组字符串作为图像键

Javascript数组字符串作为图像键,javascript,arrays,Javascript,Arrays,我有一个数组: myArray = []; 当一个新字符串被添加到数组中时,我想在画布上绘制一个图像,例如使用该字符串作为图像键注意数组中最多可以有20个字符串 myArray.push("apple"); 然后需要运行以下命令才能将图像绘制到画布上: item_apple = game.add.sprite(70, 70, 'apple'); 末尾的苹果字符串是数组中的字符串,也是开头“item_u2;”后面的苹果 如何从数组中获取字符串,并在添加新项时将其用作图像键。我想我需要一些循环

我有一个数组:

myArray = [];
当一个新字符串被添加到数组中时,我想在画布上绘制一个图像,例如使用该字符串作为图像键注意数组中最多可以有20个字符串

myArray.push("apple");
然后需要运行以下命令才能将图像绘制到画布上:

item_apple = game.add.sprite(70, 70, 'apple');
末尾的苹果字符串是数组中的字符串,也是开头“item_u2;”后面的苹果


如何从数组中获取字符串,并在添加新项时将其用作图像键。我想我需要一些循环,以便每次将字符串推到数组末尾时,使用添加到数组的新项目中的字符串运行add.sprite。

如果这是您的要求,您可以执行以下操作:

item_apple = game.add.sprite(70, 70, myArray[myArray.length-1]);

如果数组的长度始终为
1
,则可以将其命名为myArray[0]

听起来好像每次将项添加到数组时都要调用一个方法。假设您不依赖Angular、React或RXjs等框架,
Array.observe
似乎是您的最佳选择

Array.observe
是一项非标准功能,目前仅受Chrome 36支持,因此如果您需要广泛的浏览器支持,您需要这样做

但基本上,它应该是这样工作的

var arr = ['a', 'b', 'c'];

Array.observe(arr, function(changes) {
  console.log(changes);
});

arr[1] = 'B';
// [{type: 'update', object: <arr>, name: '1', oldValue: 'b'}]

arr[3] = 'd';
// [{type: 'splice', object: <arr>, index: 3, removed: [], addedCount: 1}]

arr.splice(1, 2, 'beta', 'gamma', 'delta');
// [{type: 'splice', object: <arr>, index: 1, removed: ['B', 'c', 'd'], addedCount: 3}]
因此,下面将导致这种情况

myArray.push('apple');

// myArray = ['apple']
// myImages = { item_apple: <Object> }
myArray.push('apple');
//myArray=['apple']
//myImages={item_apple:}
但是,我不确定是否与建议的
阵列一致。请观察可用的多边形填充的规格。因此,您的里程可能会有所不同


但是,我认为最好的选择是使用
React.js
之类的东西。它非常适合这种东西。如果您不熟悉React,我建议您花几天时间学习它

好的,那么你的问题是什么?听起来你想“观察”一个数组。有很多方法可以做到这一点,但它们通常依赖于某种JS框架。您是否使用任何类型的Javascript框架?不,不适用于Javascript函数,仅适用于.add.sprite等画布对象的Phaser
myArray.push('apple');

// myArray = ['apple']
// myImages = { item_apple: <Object> }