我正在尝试循环遍历整数数组并将每个值“link / map”排序到存储在另一个数组中的图像URL(然后将新数据推送到新数组中)。
我尝试过使用带有indexOf方法的For循环,但似乎没有用。
另外,重要的是要注意我的arrayOfInteger
中没有一次数据,我需要将每个值链接到它的图像等价物。
这是我的代码段:
var images = [];
var arrayOfInteger = [1, 16, 10, 8, 13, 9, 19, 12, 5, 18, 9, 1, 17, 7, 18, 16, 9, 5, 19, 10, 0, 13, 3, 2, 12];
var imgData = [
[0, 'img/0.svg'],
[1, 'img/1.svg'],
[2, 'img/2.svg'],
[3, 'img/3.svg'],
[4, 'img/4.svg'],
[5, 'img/5.svg'],
[6, 'img/6.svg'],
[7, 'img/7.svg'],
[8, 'img/8.svg'],
[10, 'img/10.svg'],
[11, 'img/11.svg'],
[12, 'img/12.svg'],
[13, 'img/13.svg'],
[15, 'img/15.svg'],
[16, 'img/16.svg'],
[17, 'img/17.svg'],
[18, 'img/18.svg'],
[19, 'img/19.svg'],
]
function pushImages() {
for(var i=0;i<arrayOfInteger.length;i++){
if(imgData.indexOf(grades[i])!= -1){images.push(imgData[i][1]);}
}
}
我也想知道......我使用好方法来实现我想要的吗?
最后,我希望images
数组包含这些网址(基于arrayOfInteger
的整数值):
images = ['img/1.svg', 'img/16.svg', 'img/10.svg', 'img/8.svg', 'img/13.svg', 'img/9.svg', 'img/19.svg', 'img/12.svg', 'img/5.svg', 'img/18.svg', 'img/9.svg', 'img/1.svg', 'img/17.svg', 'img/7.svg', 'img/18.svg', 'img/16.svg', 'img/9.svg', 'img/5.svg', 'img/19.svg', 'img/10.svg', 'img/0.svg', 'img/13.svg', 'img/3.svg', 'img/2.svg', 'img/12.svg']
因为我想根据arrayOfInteger
给我的内容在界面中显示图像。此阵列经常从服务器更新。
答案 0 :(得分:0)
{{1}}你正在寻找类似的东西吗?
答案 1 :(得分:0)
此处唯一可以处理数据的答案 - 只需最少的修改!
function pushImages() {
// Clear images if preferred
images = [];
for (var i = 0; i < arrayOfInteger.length; i++){
var data = imgData.find(function (data) {
return data[0] == arrayOfInteger[i]
});
if (data) { images.push(data[1]); }
}
}
答案 2 :(得分:-2)
你的整个例子可以大大减少:
for(var i=0; i < arrayOfInteger.length; i++){
var imgData = 'img/' + arrayOfInteger[i] + '.svg'
}
请注意,此处唯一的数组是arrayOfInteger
。 imgData
数组完全没必要。当你看到这样的重复时,你应该总是想办法减少你必须要做的打字或复制/粘贴的数量。
答案 3 :(得分:-4)
使用下划线:
var images = [];
var arrayOfInteger = [1, 16, 10, 8, 13, 9, 19, 12, 5, 18, 9, 1, 17, 7, 18, 16, 9, 5, 19, 10, 0, 13, 3, 2, 12];
var imgData = [
[0, 'img/0.svg'],
[1, 'img/1.svg'],
[2, 'img/2.svg'],
[3, 'img/3.svg'],
[4, 'img/4.svg'],
[5, 'img/5.svg'],
[6, 'img/6.svg'],
[7, 'img/7.svg'],
[8, 'img/8.svg'],
[10, 'img/10.svg'],
[11, 'img/11.svg'],
[12, 'img/12.svg'],
[13, 'img/13.svg'],
[15, 'img/15.svg'],
[16, 'img/16.svg'],
[17, 'img/17.svg'],
[18, 'img/18.svg'],
[19, 'img/19.svg'],
]
_.each(imgData, function(t){
var o = _.indexOf(arrayOfInteger, t[0]);
if (o != -1) {
images.push(t[1]);
}
});