-2

如果您正在寻找使用 javascript 的对象数组的 Get/Delete/Sum/IsExist 函数,我已经发布了此类函数的这个问题和答案

  • 使用 JavaScript 从数组中删除对象
  • 使用 JavaScript 的数组中的对象是否存在
  • 使用 JavaScript 从数组中选择对象
  • 使用 JavaScript 对数组中的对象值求和
4

3 回答 3

0

只需使用下划线

从一个简单的数组中删除:

var newList = _.without(list, 'hello', 'world'); // Remove any instance of 'hello' and 'world'

从对象数组中删除:

var toRemove = _.where(list, {title: 'hello', subtitle: 'world'});
var newList = _.difference(list, toRemove);

存在于数组中:

var exists = _.contains(list, value);

从数组中获取项目:

var item = _.find(list, function(i){ i === value }); // For simple types
var item = _.findWhere(list, {title: 'hello', subtitle: 'world'}); // For complex types

合计项目:

var sum = _.reduce(list, function(start, num){ return start + num; }, 0);

还有更多。

于 2013-08-28T02:50:26.453 回答
-2

4 个 Javascript 助手

  • 使用 JavaScript 从数组中删除对象
  • 使用 JavaScript 的数组中的对象是否存在
  • 使用 JavaScript 从数组中选择对象
  • 使用 JavaScript 对数组中的对象值求和
var JShelpers = {
    removeItemFromArray: function (myObjects, prop, valu) {
        return myObjects.filter(function (item) {
            return item[prop] !== valu;
        });

    },
    isExistInArray: function (myObjects, prop, valu) {
        var i = myObjects.length;
        while (i--) {
            if (myObjects[i][prop] == valu) {
                return true;
            }
        }
        return false;
    },
    getItemFromArray: function (myObjects, prop, valu) {
        var i = myObjects.length;
        while (i--) {
            if (myObjects[i][prop] == valu) {
                return myObjects[i];
            }
        }
        return "";
    },
    sumItemInArray: function (myObjects, prop) {
        var summation = 0;
        myObjects.forEach(function (item) {
            summation += parseFloat(item[prop]);
        });
        return summation;

    }
}

示例: 假设您有一个像这样的 Json 格式的员工数组

var employeesArray =  [{"Id":1,"Name":"tom","Age":15},{"Id":2,"Name":"Harry","Age":17}];

而且你想通过他的年龄来检索员工,不仅是 ID (as common),你可以简单地调用

JShelpers.getItemFromArray(employeesArray,"Age",15)
于 2013-08-28T02:03:22.970 回答