【问题标题】:creating an array whose elements are javascript objects with a certain property创建一个数组,其元素是具有特定属性的 javascript 对象
【发布时间】:2021-04-14 15:03:27
【问题描述】:

对于这个非常基本的问题,我提前道歉。我有一个 javascript 页面,在该页面上创建了许多对象,并为这些对象分配了某些属性。我想要做的是创建一个数组,其元素都是并且只有那些具有特定属性的对象。我知道如何创建(例如)一个数组,其元素都是并且只有具有特定类的那些 DOM 元素;但我不知道如何使用具有特定属性的 javascript 对象进行并行处理。

我认识到我可以通过数组文字手动执行此操作。我正在寻找的是一种自动生成数组的方法,以便在添加具有相关属性的新javascript对象时,它们会自动添加到数组中。

例如,如果我有

const firstconstant = { 类型:“A”, };

常量秒常量 = { 类型:“B”, };

常量第三常量 = { 类型:“A”, };

等等。我想要一种生成数组的方法,其元素是所有类型为“A”的对象。感谢您对此的任何帮助。

【问题讨论】:

  • “新的javascript对象”是通过什么方式添加的?您是否手动添加它们?
  • 感谢您的回复。是的,我手动添加了新对象。
  • 你有没有像[{type: "A"}, {type: "B"}, {type: "C"}]这样的数组,你想把它转换成这个[{type: "A"}]
  • 与其创建多个变量,不如创建一个父数组并推送值。需要时,只需 filter 不需要的值。
  • 不,不完全是。如果我描述用例可能会有所帮助。我是一名教师,为学生构建一个网站,生成问题供他们回答。他们得到哪些问题取决于他们对先前问题的回答。我手动添加的新常量是新问题,可能是各种类型(多项选择、论文等)。确定显示哪些问题的 javascript 编码依赖于数组,其成员都是且仅是某种类型的问题。现在,当我添加一个新问题时,我手动修改了相关的数组文字。正在寻找更好的方法!

标签: javascript arrays javascript-objects


【解决方案1】:

为每个新对象声明一个新变量是没有意义的,这就是发明数组的原因 - 所以你不必输入 firstconstant、secondconstant、thirdconstant 等。

首先声明一个包含所有对象的数组(并在此处添加它们):

const objects = [
    { type: "A" },
    { type: "B" },
    { type: "A" },
];

然后你可以使用.filter方法过滤掉不匹配的对象:

const filtered = objects.filter(object => object.type === "A");

【讨论】:

  • 谢谢!这是我一开始就应该做的。感谢您抽出宝贵时间回答这样一个愚蠢的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
相关资源
最近更新 更多