如何检查名称索引数组中有多少个特定结果

How to check how many specific results is in name indexed array

本文关键字:多少 结果 数组 索引 何检查 检查      更新时间:2023-09-26

我想检查有多少个带有名称:"order"的元素的值等于 1。

我的阵列:

var myArray=[{"index":1,"zamid":"765","prod":"Spaghetti","price":"22","prod_c":"1","order":"1"},
{"index":2,"zamid":"766","prod":"Coca","price":"5","prod_c":"1","order":"0"},
{"index":3,"zamid":"767","prod":"Hamburger","price":"6","prod_c":"1","order":"1"}]

谢谢你的帮助!

缺少一个数组方法:Array.prototype.reduce()

var myArray = [{ "index": 1, "zamid": "765", "prod": "Spaghetti", "price": "22", "prod_c": "1", "order": "1" }, { "index": 2, "zamid": "766", "prod": "Coca", "price": "5", "prod_c": "1", "order": "0" }, { "index": 3, "zamid": "767", "prod": "Hamburger", "price": "6", "prod_c": "1", "order": "1" }],
    count = myArray.reduce(function (r, a) {
        return r + (a.order === '1');
    }, 0);
document.write(count);

您可以使用 Array.prototype.filter() 函数(使用箭头函数):

let count = myArray.filter(i => i.order === "1").length;

ES5 替代方案:

var count = myArray.filter(function(i) {
    return i.order === "1";
}).length;
您可以使用

Array.filter

var myArray = [{
  "index": 1,
  "zamid": "765",
  "prod": "Spaghetti", 
  "price": "22",
  "prod_c": "1",
  "order": "1"
}, {
  "index": 2,
  "zamid": "766",
  "prod": "Coca",
  "price": "5",
  "prod_c": "1",
  "order": "0"
}, {
  "index": 3,
  "zamid": "767",
  "prod": "Hamburger",
  "price": "6",
  "prod_c": "1",
  "order": "1"
}]
var result = [];
result = myArray.filter(function(obj){
  return obj.order == 1
});
console.log(result)

定义"外部"计数器并使用forEach检查数组:

var counter = 0;
var myArray=[{"index":1,"zamid":"765","prod":"Spaghetti","price":"22","prod_c":"1","order":"1"},
{"index":2,"zamid":"766","prod":"Coca","price":"5","prod_c":"1","order":"0"},
{"index":3,"zamid":"767","prod":"Hamburger","price":"6","prod_c":"1","order":"1"}];
myArray.forEach(function(obj){
   if(obj.order == 1) counter++;
});
console.log(counter); // output: 2