【问题标题】:Querying an object array javascript查询对象数组javascript
【发布时间】:2023-03-09 08:11:02
【问题描述】:

由于我在 Javascript 中的 oop 级别并不如我所愿,这是我访问对象数组的解决方法。

一个数组有一个对象 (HelmT) 和一个用于 id 的,所以我可以很容易地首先通过id 访问,这样,也可以访问真正的数组并通过它的“ID”属性获取对象IDs 数组。

管理对象数组的正确方法是什么?

...当然还有Add - Remove 还有最重要的getElementBy_SomeProperty()

var Objcoll ={
    _CoreLstsIDs{_arr[],isready:false},
    _CoreLsts{_arr[],isready:false},
    HElmTColl_FindById: function (parId) {
        var collindexofCurFileReadyDivWrpFlds =  this.getIdxOfCurHElmTinColl_ID(parId);
        return this._CorLsts._arr[collindexofCurFileReadyDivWrpFlds];
    },
    getIdxOfCurHElmTinColl_ID: function (parId) {
        return $.inArray(parId, this._CorLstsIDs._arr);
    }
};

【问题讨论】:

  • 数组在哪里?我们怎么知道要寻找什么来挂钩?
  • @zer00ne 我试图发布尽可能少的代码,但我已经发布了所有基本的数组,对于 id 的:_CoreLstsIDs._arr 和对象本身 _CoreLsts._arr 我不明白缺少什么,也许我应该发布更多我的完整代码......
  • id 含糊不清。一个对象的ID?任意字符串的ID?如果有任何内容需要处理,您期待什么?如果没有告诉你想要什么结果,我们如何测试任何东西?管理对象数组?管理是模糊的,没有使用的目的或内容。

标签: javascript arrays oop


【解决方案1】:

管理数组的最简单方法是将其视为数组。 JavaScript 数组有 lots of functionality,您可以直接利用它来实现您的目标。

例如,

var arr = [{
  id: 1,
  content: 'foo'
}, {
  id: 2,
  content: 'bar'
}, {
  id: 3,
  content: 'baz'
}];

var findById = function(id) {
  return arr.find(function(element) {
    return element.id === id;
  });
}

var findByProperty = function(prop, value) {
  return arr.find(function(element) {
    return element[prop] === value;
  });
}

findById(1) // {"id":1,"content":"foo"}
findById(2) // {"id":2,"content":"bar"}
findByProperty('content', 'baz') // {"id":3,"content":"baz"}

var arr = [{
  id: 1,
  content: 'foo'
}, {
  id: 2,
  content: 'bar'
}, {
  id: 3,
  content: 'baz'
}];

var findById = function(id) {
  return arr.find(function(element) {
    return element.id === id;
  });
}

var findByProperty = function(prop, value) {
  return arr.find(function(element) {
    return element[prop] === value;
  });
}

document.write("<pre>" + JSON.stringify(findById(1)) + "</pre>");
document.write("<pre>" + JSON.stringify(findById(2)) + "</pre>");
document.write("<pre>" + JSON.stringify(findByProperty('content', 'baz')) + "</pre>");

【讨论】:

  • 干杯它简单易行,正是我想要的,非常感谢@Hamms
猜你喜欢
  • 2016-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2021-09-24
  • 1970-01-01
  • 2017-05-22
相关资源
最近更新 更多