javascript - 如何增加jquery json中的自定义计数

标签 javascript jquery json

如果笔记本电脑型号和序列号相同,我必须添加新字段totalModel并增加计数。例如,在下面的情况下:serialid“1”和笔记本电脑型号“xyz”出现两次,所以我想将“totalModel”计数添加为2,依此类推。我怎样才能在 jquery 中实现这一点

最佳答案

这个问题实际上并不是关于 jQuery,而是关于映射和过滤数组和对象。不过,我们可以使用一些 jQuery 便捷方法来解决这个问题。

解决这些问题的很大一部分是通过正确定义您想要做什么。从您的问题来看,您希望获得每个笔记本电脑型号类型的唯一序列 ID 的映射。我们可以使用 JavaScript 的 Array.prototype.reduce 来生成这样的映射(请注意,我们将为遇到的每个笔记本电脑型号的第一个获取“已售出”值):

var laptop_models = data.reduce(function (memo, obj) {
    if (!memo[obj.laptopModel]) {
        memo[obj.laptopModel] = {
            unique_serial_ids: [],
            sold: obj.sold
        };
    }

    if ($.inArray(obj.serialid, memo[obj.laptopModel].unique_serial_ids) === -1) {
        memo[obj.laptopModel].unique_serial_ids.push(obj.serialid);
    }

    return memo;
}, {});

接下来,我们可以将 laptop_models 对象映射到您指定为预期结果的数组中:

var result = $.map(laptop_models, function (laptop_model, model_name) {
    return {
        laptopModel: model_name,
        totalModel: laptop_model.unique_serial_ids.length,
        sold: laptop_model.sold
    };
});

关于javascript - 如何增加jquery json中的自定义计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31622369/

相关文章:

javascript - 如何使用 Javascript 缩短代码

javascript - 如何在函数内返回函数并返回显示

javascript - 如果调整窗口大小时 div 越过其他 div,则将 div z-index 从高更改为低?

java - Failcz.msebera.android.httpclient.client.HttpResponseException : Bad Request error while making HTTP request for weather app

javascript - 如何将 ASP.NET 用户和路由数据传递给 JavaScript?

javascript - jQuery 自动完成超时

javascript - 从页面重新加载 DIV,而不更改页面

javascript - Jquery从另一个文本输入值获取输入值并设置为隐藏输入值

java - 如何处理在 socket java 上发送的大对象?

javascript - 重新加载(更新)d3.js 强制定向图保留旧的 JSON 数据