以javascript(不是长度)计算数组中元素的数量

时间:2013-05-24 17:08:55

标签: php javascript arrays count

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

这是一个JSON数组。

数据元素有多个条目:

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

如何找到“result”数组的“data”元素中有多少条目? 当我尝试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);

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

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

所以,算一算,这就是我所做的:

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

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

答案 1 :(得分:0)

我同意发布的评论 - 您的返回对象看起来不像是格式正确。 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字符串?如果包含{}

希望有所帮助。