我想将 data.examples 数组对象 name.value 属性值与 wcObject.notCoveredList 进行比较key,如果密钥匹配,我想将 wcObject的所有匹配值推送到数组,以便在UI中显示。如果密钥不匹配,我希望data.examples数组对象的 name.desc属性值由删除 未涵盖<推送/ em>最后的文字。
data = {
examples : [
{
name: {
value:"someOne",
desc: "some random word not covered"
},
type: {
value:"General",
desc:"General"
}
}, {
name: {
value:"secondOne",
desc: "second on in the queue not covered"
},
type: {
value:"General",
desc:"General"
}
}, {
name: {
value:"thirdOne",
desc: "third one from the last not covered"
},
type: {
value:"General",
desc:"General"
}
}
]
}
wcObject = {
notCoveredList : [
{ someOne: "anyone can start " },
{ secondOne: "second One cannot start" },
{ thirdOne: "third One can be allowed" }
]
}
答案 0 :(得分:0)
所以,这段代码:
data.examples
,并将它们设置在单个对象上(使用
一个未定义的值),以便我们可以用一个单独查找这些键
当我们需要过滤时,hasOwnProperty()调用而不是迭代数组。name.desc
数组的每个成员映射到其自己的name.value
属性或[去除&#39;未涵盖&#39;] wcNotCoveredKeys = wcObject.notCoveredList.reduce((memo, item) => {
// value is empty for all, we only care about keys.
memo[Object.keys(item)[0]] = undefined;
return memo;
}, {})
// having built up our lookup table of those not covered, we continue:
forUI = data.examples.map(example => {
if (wcNotCoveredKeys.hasOwnProperty(example.name.value)) {
return example.name.value;
}
else {
notCoveredString = example.name.desc;
cutOutIndex = notCoveredString.indexOf(' not covered');
return notCoveredString.slice(0, cutOutIndex)
}
});
财产。
["someOne", "second on in the queue", "thirdOne"]
(更新为整合字符串切片)
为了清楚起见:如果你从wcObject.notCoveredList中删除了第二个项目,那么你输入forUI的输出(给定你提供的示例数据结构/值)将是
@echo off
setlocal enableDelayedExpansion
FOR /f "skip=1 tokens=5 delims=:," %%I IN (vers.json) DO IF NOT DEFINED ver SET "ver=%%I"
set ver=%ver:"=%
set ver=%ver: =%
echo !ver!