以下内容来自课程的项目说明:
“你知道==运算符可用于测试两个字符串对象是否相等。但是,你会记得它们被认为是不相等的,即使它们持有完全相同的字母,如果是任何字母的情况因此,例如,如果name1 =“Jack”和name2 =“JACK”,则认为它们不相同。编写一个程序,要求用户输入两个名称并将它们存储在字符串对象中。然后应该报告无论是否,无视案例,都是一样的。
为了帮助程序完成此任务,除了main,upperCaseIt()和sameString()之外,还应该使用两个函数。以下是它们的函数头:
string upperCaseIt(string s)
boolean sameString (string s1, string s2)
接收要比较的两个字符串的sameString函数在测试它们之前是否需要为每个字符串调用upperCaseIt它们是否相同。 upperCaseIt函数应该使用一个循环,这样它就可以为它收到的字符串中的每个字符调用toupper函数,然后再将它返回到sameString函数。“
这是我的代码:
我需要做什么才能比较n1和n2的布尔值,以确定它们是否相等?
答案 0 :(得分:0)
此问题的要点是您要对两个字符串执行不区分大小写的比较。已经给出的提示指明了方向:
const data = [{label: "Sort-01",data: [{label: "OCT-2017",weight: 2304,},{label: "NOV-2017",weight: 1783,},],},{label: "Sort-02",data: [{label: "OCT-2017",weight: 4785,},{label: "NOV-2017",weight: 102,},],},];
const flatten = (acc, cur) => {
cur.data.forEach(val => acc.push(val));
return acc;
};
const monthMap = ({ label, weight }) => ({ [label]: weight });
const reducer = (acc, cur) => {
const key = Object.keys(cur)[0]
if (!acc.hasOwnProperty(key)) { acc[key] = 0 }
acc[key] += cur[key];
return acc;
};
let x = data.reduce(flatten, []).map(monthMap).reduce(reducer, {});
console.log(x);
因此,通过比较两个字符串的ALL CAPS版本,任何案例差异都会丢失。