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

Push array content into empty array using another variable as a placeholder for the content array name

本文关键字:数组 占位符 变量 另一个      更新时间:2023-09-26

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

我试图列表和数组,但我得到各种奇怪的错误。venueValue = garden和personRange = a所以locationArray = garden a,但是当我在每个函数中使用它时,它不起作用。如果我在每个函数中使用gardena而不是location数组,它会工作得很好。

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);
    });

我敢说解决办法是显而易见的,但我完全迷路了。

提前感谢。

要向数组中添加元素,应该使用push()方法。如你所做的,它将locationArray设置为字符串或数字。

我还建议像这样定义数组
var array = [];

我想你是想说venueValue是字符串"花园"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);
});

当你使用+号来连接数组时,它会将venueValue的最后一个元素连接到personRange。

假设a数组是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);

在这种情况下,我们添加字符串并对它们求值

希望对大家有所帮助

试试这个

像下面的代码片段一样推送你的值。因此,您可以使用$.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>

DEMO in FIDDLE