如何使用键值创建jquery数组

时间:2016-12-29 09:20:37

标签: javascript jquery arrays key-value

有没有办法可以在JQuery中使用键和值创建数组? 我想循环遍历TFNDailySummaryReportData数组,并将其DateWiseSalesData的Name属性指定为key,将DateWiseSalesData指定为值。

for (var i = 0; i < TFNDailySummaryReportData.length; i++) 
{
    var keyValueArray = {
         Key: TFNDailySummaryReportData[i].DateWiseSalesData.Name;
         value: TFNDailySummaryReportData[i].DateWiseSalesData
     }
}

有可能实现这样的目标吗?如果是,怎么样?

2 个答案:

答案 0 :(得分:5)

你非常接近,你可以定义一个数组并使用.push()方法来填充它。

var arr=[];
for (var i = 0; i < TFNDailySummaryReportData.length; i++) 
{
    arr.push({
         Key: TFNDailySummaryReportData[i].DateWiseSalesData.Name;
         value: TFNDailySummaryReportData[i].DateWiseSalesData
     })
}

您也可以使用.map()

var arr=TFNDailySummaryReportData.map(function(value){
    return {
         Key: value.DateWiseSalesData.Name;
         value: value.DateWiseSalesData
     }
});

答案 1 :(得分:0)

这与jQuery无关。数组是基本的JavaScript,您可以将基于KVP的对象映射到新数组:

使用ES6:

do {
    let jsonResult = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String: Any]
    guard let results = jsonResult["results"] as? [Any], let resultDictinary = results.first as? [String: Any] else {
        fatalError("Data structure invalid")
    }
    let title = resultDictinary["title"]
} catch {
    print("JSON Preocessing failed")
}

使用ES5:

const keyValueArray = TFNDailySummaryReportData.map(x => { 
    return { [x.DateWiseSalesData.Name]: x.DateWiseSalesData };
});