【问题标题】:jQuery: How to create indexed array from comma separated string [duplicate]jQuery:如何从逗号分隔的字符串创建索引数组[重复]
【发布时间】:2015-06-26 18:36:11
【问题描述】:

我在 jQuery 中有一个 Ajax 调用,它返回一串逗号分隔的单词。

现在我需要用这个字符串的内容创建一个索引数组,这样字符串中的每个单词在数组中都有一个数字。 稍后我需要使用该数组中的特定值,例如第三,第四和第五。

我尝试了以下方法,但最终在创建 var 时返回 undefined。
如果我在成功函数中提醒 myArray ,我仍然会得到一个逗号分隔的字符串,所以我想我可能缺少索引部分?
有人可以告诉我我在做什么错吗? p>

myArray = [],
myVar = 'someText';     

$.ajax({        
    type: "post",   
    url: "ajax.php",
    cache: "false",
    data: {
        node: 'fetchStuff',
        languageFrm: languageFrm
    },
    success: function(data){
        myArray = data.split(',');
    },
    error: function(){
    }
});

myVar += myArray[2] + ' - ' + myArray[3] + ' - ' + myArray[4];

【问题讨论】:

  • 试着把console.log(myArray);成功。它返回什么?
  • @bksi:谢谢 - 让我检查一下。
  • 您还可以使用 firefox 开发者工具查看响应中包含的数据
  • @bksi:使用控制台测试它返回一个具有正确值的数组,但它只是值,它们没有唯一的数字来引用它们(对不起,我不知道对他们来说正确的术语是什么)。 - 控制台中的结果如下所示:["value1", "value2", "value3", "value4", "value5"]
  • 查看@tylerism 的回答我认为这是你的情况

标签: javascript jquery arrays multidimensional-array


【解决方案1】:

Javascript 是异步的。这意味着它可以继续执行下一行代码,即使前一行还没有完成。您正在经历经典的比赛条件。在 ajax 调用成功之前,您无法创建 myVar。尝试将myVar += myArray[2] + ' - ' + myArray[3] + ' - ' + myArray[4]; 部分移动到成功函数中。

【讨论】:

  • 非常感谢!只是为了检查一下,这是否与我在上面评论中提供的示例相匹配?
  • 别担心数字,它们是隐含的。您仍然应该能够访问带有数字的数组。 Javascript 像 ["value1","value2"] 一样打印数组,您可以使用 myArr[0] 访问该数组以获取 value1
  • 你是对的——这就是问题所在。非常感谢 - 大帮助! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
  • 2020-12-27
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多