使用 javascript 遍历数组 [重复]

Posted

技术标签:

【中文标题】使用 javascript 遍历数组 [重复]【英文标题】:Iterating thru an array using javascript for [duplicate] 【发布时间】:2012-08-15 12:07:53 【问题描述】:

如何在 jquery 中使用“for”遍历这样的数组。这个让我完全迷失了。我不知道如何从这样的数组中取出这些值,也无法更改数组的完成方式。

//php
$errors['success']   = false;
$errors['#errOne']   = "Enter a valid username";
$errors['#errTwo']   = "Enter a valid email";
$errors['#errThree'] = "Enter a valid password";
echo json_encode($errors);//

dataType:"json",
cache:false,
success: function(data)
for (i=1; i<?; i++)//Start at 1
//I'm totally lost here.
//Output: "#errOne" "Enter a valid username" ->Loop thru remaining messages
   
,

【问题讨论】:

小心i是全球性的,使用var 【参考方案1】:

由于您将数据作为参数传递,因此您可以访问数据

试试这样的:

var $errors = ;
$errors['success']   = false;
$errors['#errOne']   = "Enter a valid username";
$errors['#errTwo']   = "Enter a valid email";
$errors['#errThree'] = "Enter a valid password";
    data : $errors;
    success: function(data)
    for (var i in data )
       console.log(i + ':' + data[i]);
    

【讨论】:

@some 我在第一行本身创建对象。你认为我在哪里滥用 javascript 中的数组? 这是我需要的 99%。唯一的问题是:知道如何从 [1] 而不是 [0] 开始吗?【参考方案2】:

也许你需要这个:

success: function(data)
    $.each(data, function(key, value)  
        alert(key + ': ' + value); 
    );

【讨论】:

我从哪个 $.each 开始。如果我们能告诉 $.each 从哪里开始——从 [0] 或 [1] 开始,那就太好了。例如:for (i=1;... 在不同的浏览器中数据的排序会有所不同。在 FF 中它会保持原样,但 Chrome 会自动按键对数据进行排序。所以在不同的浏览器中,第一个元素会有所不同【参考方案3】:
for (var key in data)
   alert(key); // gives keys  success, #errOne, #errTwo, #errThree
   alert(data[key]); // gives values  false, Enter a valid username, Enter a valid email, Enter a valid password
  

【讨论】:

当使用 for (var key in data) 时,我们可以告诉它从 [1] 而不是 [0] 开始吗?例如:for (i=1;...【参考方案4】:

如果你的 PHP 代码是这样的:

// Use $errors = array(...) if your PHP version is < 5.4
$errors = [
    'success' => false, // Why is 'success' part of the $errors array?
    'error_1' => 'Enter a valid username.',
    'error_2' => 'Enter a valid email.',
    'error_3' => 'Enter a valid password.'
];

print json_encode($errors);

,然后在您的 JavaScript 中,您可以执行以下操作:

$.ajax(
    'url': 'your.url.com/data.json',
    'dataType': 'json',
    'cache': false, // Why are you doing this?
    'success': function (json_data) 
        var i = json_data.length;
        while (i--) 
            alert(json_data[i]); // Or whatever you want to do with the data.
        
    
);

我很确定这是最好的方法之一。如果我错了,请有人纠正我。

【讨论】:

以上是关于使用 javascript 遍历数组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在Javascript中循环遍历数组的元素[重复]

forEach 在javascript中同时循环遍历两个数组[重复]

无法遍历我的数组/对象。 Javascript,React Native [重复]

JavaScript tips:数组去重

javascript中的IndexOf方法比遍历数组更有效吗?

Java数组去重复问题