【发布时间】:2017-08-04 02:11:05
【问题描述】:
我已经失去了超过 3 天的时间,但仍然没有成功。这可能就像大海捞针一样,但我仍然需要这样做。
我正在尝试在对象数组中查找键,如果它包含 (a) 或 (b),请将某个键设置为 true。
但是,我在某处犯了错误,但我不知道在哪里。
这是我现在拥有的:
let reg = /\((.+?)\)/;
let aggregatedArray: Array<any> = [];
const allWeeksDescription = this.selectedPlan.weeklyOffer;
console.log(allWeeksDescription);
let prop = 'description';
for (prop in allWeeksDescription) {
allWeeksDescription[prop].forEach(function(k:any) {
aggregatedArray.push(k.description);
console.log(aggregatedArray);
})
}
但是,我在控制台中收到了这个错误(不过,我确实得到了一个 console.logged 之后成功):
原始异常:allWeeksDescription[prop].forEach 不是 功能
我需要做的就是找到key ('description'),如果它的值与RegEx匹配成功,然后将另一个key ('exists')设置为true。如果没有,请保持原样 - false。应该使用存储在此变量中的 RegEx 进行匹配:
let reg = /\((.+?)\)/;
在控制台中我收到如下信息:
{
monday: [
{
description: "(a)",
exists: false
},
{
description: "(a)",
exists: false
},
{
description: "(a)",
exists: false
},
{
description: "(a)",
exists: false
},
{
description: "(a)",
exists: false
}
]
tuesday: [
{
description: "test",
exists: false
},
{
description: "test",
exists: false
},
{
description: "test",
exists: false
},
{
description: "test",
exists: false
},
{
description: "test",
exists: false
}
]
}
总之,我需要得到description keys 并将它们与Regex 匹配。如果匹配,key exists 的值应为true。如果没有,它应该保持现在的状态 - false。
请帮帮我,我为此浪费了太多天。
谢谢大家。
【问题讨论】:
-
@Kinduser,嗨,伙计。您能否发布一个完整的工作示例作为答案?谢谢老兄。
-
我需要
allWeeksDescription对象(: -
哦,抱歉,我这里没有……我在家。 :(请问有什么可以做的吗?
-
ValLeNain 已经帮助了你,我希望他的解决方案对你有用,但如果没有 - 请告诉我 - 我会尝试解决它。
-
明天之前我不能测试。我很好奇 VaILeNain 的评论。您认为将其保存在单独的文件中会更好吗?
标签: javascript arrays json regex object