Count数组中元素的个数(不是长度)

Count number of elements in an array in javascript (not length)

本文关键字:数组 元素 Count      更新时间:2023-09-26

我有一个数组与不同的"列",例如:id,标题,日期,数据等

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

谢谢你的帮助

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

所以,为了计数,我是这样做的:

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

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

我同意张贴的评论-您的返回对象看起来好像没有正确格式化。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);

控制台。Dir将显示该对象,console.log显示的长度为3。

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

换行

希望对你有帮助。