使用另一个变量将数组内容推送到空数组,作为内容数组名称的占位符

时间:2015-08-13 15:59:03

标签: javascript jquery arrays for-loop

编辑:@Andreas得到了解决方案。谢谢大家的回复!你们都摇滚!

我正在尝试列出和数组,但我得到各种奇怪的错误。 venueValue = garden和personRange = a locationArray = garden a,但是当我在每个函数中使用它时它不起作用。如果我在每个函数中使用gardena而不是位置数组,它就可以正常工作。

gardena = ["Private Villa - Gozo", "Palazzo Parisio", "Ta' Frenc - Gozo", "Mridiana Wine Estate"];
    locationArray = new Array();
    locationArray = venueValue+personRange;
    $.each(locationArray, function(index, value) {
        alert(value);
    });

我打赌解决方案很明显,但我完全迷失在这里。

提前谢谢。

4 个答案:

答案 0 :(得分:0)

要向数组添加元素,应使用push()方法。像你这样做,将locationArray设置为字符串或数字。

我还建议像这样定义数组

var array = [];

而不是new Array();

答案 1 :(得分:0)

试试这个。

推送您的值,如下面的代码段。这样您就可以使用$.each()方法迭代您的值。

var locationArray = [],venueValue = 'garden ',personRange = 'a';
locationArray.push(venueValue,personRange); //Push your values here in an array
$.each(locationArray, function(index, value) {
    alert(value);
     }); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

<强>更新

我想我明白了。像这样使用eval函数。它将捕获gardena变量的值。然后你可以用那个迭代。

var locationArray = [],venueValue = 'garden',personRange = 'a',
    gardena = ["Private Villa - Gozo", "Palazzo Parisio", "Ta' Frenc - Gozo", "Mridiana Wine Estate"];
locationArray = venueValue+personRange;
$.each(eval(locationArray), function(index, value) {
    alert(value);
     });     
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

FIDDLE

中的演示

答案 2 :(得分:0)

当您使用+符号连接Array时会发生什么事情,它会将venueValue的最后一个元素连接到personRange。

所以说我的数组是a = [1,2,3]而b是b = [6,7,8]如果我试试c = a + b它会给出结果[1,2,36] ,7,8]这是不可取的,因此可以通过连接来完成两个数组的合并

例如:c = a.concat(b);

它将给出结果[1,2,3,6,7,8]

如果您想要[16,27,38]这样的结果,可以使用此功能

function ab(a,b)
{var c=[]; 
for(var i=0;i<a.length;i++)
{c[i]=a[i]+''+b[i];} 
return (c);
} 
var a=[1,5,6]; 
var b=[9,0,8]; 
console.log(ab(a,b));  

如果你想要

var a='ab'; 
var k='b'; 
var abb=[1,2,3,4]; 
var c=eval(a+k); 
console.log(c);

这种情况我们正在添加字符串并对其进行评估

希望它会有所帮助

答案 3 :(得分:0)

我认为你试图说venueValue是字符串“garden”personRange是字符串“a”,例如venueValue+personRange是字符串“gardena”,并且您希望迭代数组gardena的值。

如果这是准确的,那么这是我的建议:首先,将数组放在一个对象而不是使它成为一个全局。

var mystuff = {
        gardena : ["Private Villa - Gozo", "Palazzo Parisio", "Ta' Frenc - Gozo", "Mridiana Wine Estate"],
        };

然后你可以从对象中获取数组:

var locationArray = mystuff[ venueValue+personRange ];
$.each(locationArray, function(index, value) {
    alert(value);
});