javascript - 使用 JSON 数组中相似键的值创建一个数组

标签 javascript jquery arrays json ajax

我有一个 JSON 数组格式的数组。我想提取公共(public)键的值并以此创建一个新数组。 这个我试过了

var date = [];
var amt = [];
for(var i in data){
    date.push(data[i].sale_date);
    amt.push(data[i].total);
}

其中 sale_datetotal 是键。 但是这段代码返回了一个 undefined object 的数组。 我的名为 data 的数组看起来像

{"sale_date":"2017-12-26 11:05:05","total":"500"}{"sale_date":"2017-12-26 11:05:18","total":"500"}

我期待两个数组 date[2017-12-26 11:05:05, 2017-12-26 11:05:18 ]amt[500, 500] 我从下面的代码中获取 data 作为 ajax 响应。

$sql = "SELECT sale_date, total FROM customers";
        $result = $conn->query($sql);
        if($result->num_rows>0){ 
            while($row=$result->fetch_assoc()){
                $db_data = $row;
                print json_encode($db_data);
            }
        }

这就是我的 ajax 请求的样子

$(document).ready(function(){
    $.post("ajax-req-handler.php",
    {
        key: "draw-line-chart"
    },
    function( data ){
        console.log(data);
        var date = [];
        var amt = [];
        for(var i in data){
            date.push(data[i].sale_date);
            amt.push(data[i].total);
        }
        console.log(date);
        console.log(amt);
     });
});

最佳答案

var data = [
{"sale_date":"2017-12-26 11:05:05","total":"500"},{"sale_date":"2017-12-26 11:05:18","total":"500"}
];

var date = [];
var amt = [];
for(var i in data){
    console.log(i);
    date.push(data[i].sale_date);
    amt.push(data[i].total);
}

console.log(date);
console.log(amt);

PHP 代码:-

    $sql = "SELECT sale_date, total FROM customers";
        $result = $conn->query($sql);
        $data = array();
        if($result->num_rows>0){ 
            while($row=$result->fetch_assoc()){
                $db_data[] = $row;
            }
        }
   echo json_encode($db_data);

Ajax 请求:-

$(document).ready(function(){
$.post("ajax-req-handler.php",
{
    key: "draw-line-chart"
},
function( data ){
    console.log(data);
    data = JSON.parse(data);
    var date = [];
    var amt = [];
    for(var i in data){
        date.push(data[i].sale_date);
        amt.push(data[i].total);
    }
    console.log(date);
    console.log(amt);
 });

});

关于javascript - 使用 JSON 数组中相似键的值创建一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47988232/

相关文章:

javascript - 向右滑动功能不起作用

java - 如何同时共享 Java 和 GWT 项目的 EventBus?

javascript - 使用 CasperJS 将鼠标悬停在元素上

javascript - 我试图在 Dreamweaver 中包含 JQuery,但它没有被识别。不是文件,不是来自 CDN

jquery - 如何像在 Wella.com 上那样在 div 元素上制作悬停渐变?

javascript - 根据 moment.js 中的区域设置日期设置 UTC 格式

javascript - 手动更新时如何刷新数据表jquery

c - 发送字符串数组 MPI C

javascript - 使用 JSON 数据创建 HighCharts 饼图

php - 将具有多个数组的ajax数据发布到php