如何使用ajax过滤器

时间:2014-07-14 18:02:10

标签: javascript arrays json

我正在尝试从AJAX调用中过滤掉一些值。这是我尝试过的:

var year = 200908; // for example          
var resultArray = data.filter(function (a) {
    return a.proddate == year;
});

var firstTask = resultArray[0];
var lastTask = resultArray[resultArray.length - 1];

data来自ajax调用中的success函数。但是我收到了这个错误:

JavaScript runtime error: Object doesn't support property or method 'filter'

以下是返回数据的示例:

"[{
    "tasknum":6,
    "dependtask":5,
    "jobname":"prc",
    "proddate":"200908",
    "activity":"Pr‌​elim",
    "groupname":"CNSPROD-EST",
    "parametername":"n/a",
    "parametervalue":"n/a"
}]"

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

首先,尝试在console.log上执行data并验证您确切要检索的内容。 filter仅适用于数组,因此可以使用:

var resultArray = [1,2,3].filter(function(a) {
    return a > 2;
});

但这不会:

// "Object doesn't support property or method 'filter'"
var resultArray = {1: true, 2: true, 3: true}.filter(function() { ... });

答案 1 :(得分:0)

我怀疑data不是分配给响应的变量。或许您还没有使用JSON.parse()

解析来自JSON的js数组的响应

您的代码在这里工作正常:

DEMO