【问题标题】:Count number of elements in an array in javascript (not length)在javascript中计算数组中的元素数(不是长度)
【发布时间】:2013-05-24 17:08:55
【问题描述】:

我有一个包含不同“列”的数组,例如:id、title、date、data 等。

它是一个 JSON 数组。

数据元素有多个条目:

"data":["test = test", "2nd test", "3rd test"]

如何找到“结果”数组的“数据”元素中有多少条目? 当我尝试result.data.length 时,它给了我整个长度,所以所有的字符。 在这里,它会说 27,而我想要 3 作为答案。

编辑:这就是我获取元素并推送它们的方式(我得到一个 JSON 数组):

$.getJSON("test.php?id=" + id, function(data) {
    $.each(data, function(index, data1) {               
        window.result.push(data1);  
    });

这是 test.php 代码:

if(isset($_GET['id'])){
$id = $_GET['id'];
$liste = getData($id);
$arr = array();
$i = 0;
foreach($liste as $result){
    $arr[$i]['id'] = $result->id();
    $arr[$i]['titre'] = $result->titre();
    $arr[$i]['data'] = $result->listeMot();
    $i++;
}
echo json_encode($arr);

感谢您的帮助。

【问题讨论】:

  • 有些事情你没有告诉我们,因为 JavaScript 的行为方式不是这样:result = {"data":["test = test", "2nd test", "3rd test"]}; result.data.length; // 3。如果您不查看实际代码,我们将无法帮助您,因为您发布的代码无法按照您所说的方式运行。
  • 我同意@meagar——你能发布你的对象的控制台日志输出吗?
  • result.data 是数组还是字符串?
  • 听起来data实际上是一个字符串。你是如何创建这个“数组”的?你忘记JSON.parse了吗?
  • 可能是data 属性包含一个字符串(我不确定$result->listeMot() 返回什么)。如果是这种情况,您可以在 PHP 端使用 $arr[$i]['data'] = explode(',', $result->listeMot()); 修复它,或者在 js 端使用 window.result.push(data1.split(',')); 修复它。

标签: php javascript arrays count


【解决方案1】:

终于找到了答案(非常感谢@RocketHamzat)。 它确实是一个字符串,而不是一个数组。在那种情况下,我在每对单词之后都有返回(我以为它们是用逗号分隔的,但事实并非如此)。

所以,算起来,这就是我所做的:

result.data.split('\r\n').length;

这就像一个魅力。感谢您的帮助!

【讨论】:

    【解决方案2】:

    我同意发布的 cmets - 您的返回对象看起来格式不正确。 data 应该是一个具有数组键值的对象。您的回报应如下所示:

    var d = '{"data":["test = test", "2nd test", "3rd test"]}';
    console.dir(JSON.parse(d));
    var arr = JSON.parse(d);
    console.log(arr.data.length);
    

    console.dir会显示对象,console.log显示长度为3。

    您是否手动将响应格式化为 JSON 字符串?如果是这样,请使用 {}

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多