【问题标题】:How do I make this loop through an array?如何使这个循环通过数组?
【发布时间】:2011-04-09 15:51:01
【问题描述】:

我有这个 jquery 代码:

function(returnArray){
     for (i=0; i<returnArray.length; i++) {
         $('<li class="tagSuggestTag"/>').appendTo('#tagSuggest ul').text(returnArray[i]);
     }

return 数组是一个数组,但由于某种原因,当我这样做时,它会遍历数组的每个字母,而不是数组中的每个值。

returnArray 是 ["hello", "helloe", "helloer"] 并且该循环通过并返回:

【问题讨论】:

  • 你确定 returnArray 是一个数组吗?看起来是字符串 '["hello", "helloe", "helloer"]'。
  • 好像returnArray 是一个字符串(特别是因为第一个输出字符是[) - 你能发布创建它的代码吗?
  • @Dunes @Anders Lindahl 实际上可能是我现在考虑它。它来了一个数组的 json_encode() 的 php 回显。知道这是否会返回一个字符串?
  • 如果那是真的,任何想法我将如何只用字符串做一个类似循环的事情,我假设我应该使用正则表达式,只是不确定之后究竟是什么
  • 如果它是 json 格式并且你使用的是 jquery,为什么不使用 jQuery.parseJSON 函数呢? api.jquery.com/jQuery.parseJSON

标签: javascript jquery arrays


【解决方案1】:

在 cmets 中揭示了 returnarray 并不是真正的数组,它是由 PHP 函数 json_encode() 计算的字符串的 JSON 字符串表示形式。

jQuery.parseJSON 函数可以将其转回 javascript 数组。

【讨论】:

    【解决方案2】:

    你的数组是一个字符串。使用:

    var myarray = eval('["hello", "helloe", "helloer"]');
    

    【讨论】:

    • euuw - 为什么要评估? var myarray = ["hello", "helloe", "helloer"]; 会工作
    • 因为 returnArray 是一个字符串而不是一个数组。这只是一个如何将数组的字符串表示形式转换为实际数组的示例。真正的代码是 var realArray = eval(returnArray);
    猜你喜欢
    • 2017-01-27
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 2013-08-19
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多