Javascript 如何在NodeJS中排除和格式化匹配值?
我有一个Javascript 如何在NodeJS中排除和格式化匹配值?,javascript,node.js,dictionary,object,Javascript,Node.js,Dictionary,Object,我有一个对象obj,如下所示: const obj = { Hostname: "abc.com" Check1Status: "PASS" Check2Status: "PASS" Check3Status: "FAIL" Check3ErrorHeading: "Reason for Check3" Check3ErrorDetail: "Details for Check3&quo
对象
obj
,如下所示:
const obj = {
Hostname: "abc.com"
Check1Status: "PASS"
Check2Status: "PASS"
Check3Status: "FAIL"
Check3ErrorHeading: "Reason for Check3"
Check3ErrorDetail: "Details for Check3"
Check4Status: "FAIL"
Check4ErrorHeading: "Reason for Check4"
Check4ErrorDetail: "Details for Check4"
TotalExecutions: 5
};
TotalExecutions
PASS
作为价值Hostname
和它的值的检查
捕获为失败
使输出如下所示:
TotalExecutions:5,Check3:Check3的原因:Check3的详细信息,Check4:Check4的原因:Check4的详细信息
字符串
。
我已经编写了以下代码,它排除了PASS
和TotalExecutions
并排除了HostName
,但没有实现4
const result = Object.values(obj).map
(el => Object.entries(el).filter(([key, value]) => value !== 'PASS' && key !== 'Hostname').reduce((acc, [key, value]) => ({
...acc,
[key]: value
}), {}));
以下内容应该适合您
const obj = {
Hostname: "abc.com",
Check1Status: "PASS",
Check2Status: "PASS",
Check3Status: "FAIL",
Check3ErrorHeading: "Reason for Check3",
Check3ErrorDetail: "Details for Check3",
Check4Status: "FAIL",
Check4ErrorHeading: "Reason for Check4",
Check4ErrorDetail: "Details for Check4",
TotalExecutions: 5
};
let resultObj = {};
for (let prop in obj) {
if (prop == "TotalExecutions") {
resultObj[prop] = obj[prop];
}
if (obj[prop] == "FAIL") {
let startOfKey = prop.replace("Status", "");
resultObj[startOfKey] = obj[startOfKey + "ErrorHeading"] + ":" + obj[startOfKey + "ErrorDetail"]
}
}
console.log(resultObj)
以下内容应该适合您
const obj = {
Hostname: "abc.com",
Check1Status: "PASS",
Check2Status: "PASS",
Check3Status: "FAIL",
Check3ErrorHeading: "Reason for Check3",
Check3ErrorDetail: "Details for Check3",
Check4Status: "FAIL",
Check4ErrorHeading: "Reason for Check4",
Check4ErrorDetail: "Details for Check4",
TotalExecutions: 5
};
let resultObj = {};
for (let prop in obj) {
if (prop == "TotalExecutions") {
resultObj[prop] = obj[prop];
}
if (obj[prop] == "FAIL") {
let startOfKey = prop.replace("Status", "");
resultObj[startOfKey] = obj[startOfKey + "ErrorHeading"] + ":" + obj[startOfKey + "ErrorDetail"]
}
}
console.log(resultObj)
const obj={
主机名:“abc.com”,
检查状态:“通过”,
检查状态:“通过”,
Check3Status:“失败”,
Check3ErrorHeading:“检查原因3”,
Check3ErrorDetail:“Check3的详细信息”,
Check4Status:“失败”,
Check4ErrorHeading:“检查原因4”,
Check4ErrorDetail:“Check4的详细信息”,
执行总数:5
};
var output=[`总执行数:${obj.TotalExecutions}`];
for(obj中的var键){
如果(obj[键]=‘失败’){
输出推送(`
${key.replace('Status','')}:
${obj[key.replace('Status','ErrorHeading')]}:
${obj[key.replace('Status','ErrorDetail')]}`)
}
}
console.log(output.join(','))
const obj={
主机名:“abc.com”,
检查状态:“通过”,
检查状态:“通过”,
Check3Status:“失败”,
Check3ErrorHeading:“检查原因3”,
Check3ErrorDetail:“Check3的详细信息”,
Check4Status:“失败”,
Check4ErrorHeading:“检查原因4”,
Check4ErrorDetail:“Check4的详细信息”,
执行总数:5
};
var output=[`总执行数:${obj.TotalExecutions}`];
for(obj中的var键){
如果(obj[键]=‘失败’){
输出推送(`
${key.replace('Status','')}:
${obj[key.replace('Status','ErrorHeading')]}:
${obj[key.replace('Status','ErrorDetail')]}`)
}
}
console.log(output.join(','))
希望能对您有所帮助
函数格式化程序(){
常量对象={
主机名:“abc.com”,
检查状态:“通过”,
检查状态:“通过”,
Check3Status:“失败”,
Check3ErrorHeading:“检查原因3”,
Check3ErrorDetail:“Check3的详细信息”,
Check4Status:“失败”,
Check4ErrorHeading:“检查原因4”,
Check4ErrorDetail:“Check4的详细信息”,
执行总数:5
};
let result=`TotalExecutions:${obj['TotalExecutions']}`;
Object.keys(obj.forEach)(key=>{
如果(obj[键]=‘失败’){
const checkKey=key.match(/Check\d/);
const errorHeading=obj[`${checkKey}errorHeading`];
const errorDetail=obj[`${checkKey}errorDetail`];
结果+=`,${checkKey}:${errorHeading}:${errorDetail}`;
}
});
返回结果;
}
log(格式化程序())代码>希望它能帮助你
函数格式化程序(){
常量对象={
主机名:“abc.com”,
检查状态:“通过”,
检查状态:“通过”,
Check3Status:“失败”,
Check3ErrorHeading:“检查原因3”,
Check3ErrorDetail:“Check3的详细信息”,
Check4Status:“失败”,
Check4ErrorHeading:“检查原因4”,
Check4ErrorDetail:“Check4的详细信息”,
执行总数:5
};
let result=`TotalExecutions:${obj['TotalExecutions']}`;
Object.keys(obj.forEach)(key=>{
如果(obj[键]=‘失败’){
const checkKey=key.match(/Check\d/);
const errorHeading=obj[`${checkKey}errorHeading`];
const errorDetail=obj[`${checkKey}errorDetail`];
结果+=`,${checkKey}:${errorHeading}:${errorDetail}`;
}
});
返回结果;
}
log(格式化程序())代码>