- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将我的简历复制到另一个对象中,并将其更改为希腊语(以查看我的 html 布局的外观)。我的问题是,当我通过该函数传递我的简历时,它会以某种方式在函数之外更改为希腊语。任何帮助,将不胜感激。我更改了简历上的信息,但格式是一样的。我们不允许使用任何其他 JS 库。该函数是greekingResume()。这是代码:
<script>
let resume = {
"personalInfo": {
"firstName": "Bob",
"lastName": Ross",
"contactInfo": {
"address": {
"city": "Somewhere",
"state": "USA"
},
"phoneNumber": "454-555-5555",
"email": "somedude@gsomeemail.com"
}
},
"education": {
"degree": "Bachelors of Computer Science",
"gradDate": "May 2018",
"schoolInfo": {
"school": "Some University",
"city": "Somewhere",
"state": "USA",
"relatedCourses": {
"programming": [
"Fundamentals of Programming",
"Object Oriented Programming",
"Operating Systems Theory",
"C++ Software Development",
"Patterns of Software Development"
],
"computerScience": [
"Discrete Structures",
"Introduction to Algorithms and Data Structures",
"Computer Networks",
"Computer Organization and Architecture",
"Introduction to Algorithms",
"Database Theory",
"Introduction to Computation Theory"
]
}
}
},
"skills": [{
"title": "programming",
"skillSet": [
"Proficient with C++, C#, C. Familiar with Java, angularJS and HTML/CSS",
"Designed User Interface changes and applications using Java for a company's product, helped create software that uses an angularJS application to communicate and display data from a Jasper REST server",
"Designed a Virtual Machine that can use multithreading without the threading library, a Stack, a Graph, a Word Counting program, and more that all fit to professors specifications"
]
}, {
"title": "management",
"skillSet": [
"Supervise a team of nine employees: oversee daily tasks, shift assignments and area coverage",
"Coordinate between team members to increase productivity, identifying key strengths and abilities to match job tasks",
"Utilize time effectively to maintain a standard of duties, resulting in promotion to lead custodian over two buildings"
]
}, {
"title": "communication",
"skillSet": [
"Communicated between team members and manager to ensure project was on track",
"Provide feedback between managers and employees to ensure a standards of cleaning, employee performance, and other general information or instructions",
"Increased employee productivity by effectively relaying instructions, resulting in extra time to focus on ancillary work"
]
}, {
"title": "organization & training",
"skillSet": [
"Complete tasks in a timely manner and resolve unexpected issues quickly",
"Trained others on how to effectively complete tasks to streamline workflow",
"Quickly learns a new skill and adapt easily to change and improvement"
]
}],
"experience": [{
"title": "Software Developer",
"company": "Cool Current Company",
"workStartDate": "April 2016",
"workEndDate": "Present",
"location": {
"city": "Somewhere Else",
"state": "USA"
}
}, {
"title": "Software Developer",
"company": "SuperDuper Co",
"workStartDate": "March 2015",
"workEndDate": "December 2015",
"location": {
"city": "Nowhere",
"state": "USA"
}
}, {
"title": "Sandwich Artist",
"company": "Sandwich shop",
"workStartDate": "January 2015",
"workEndDate": "March 2015",
"location": {
"city": "Somewhere",
"state": "USA"
}
}, {
"title": "Lead Custodian",
"company": "Some University",
"workStartDate": "August 2011",
"workEndDate": "January 2015",
"location": {
"city": "Somewhere",
"state": "USA"
}
}]
};
let greekWords = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris at ex eu turpis lacinia dapibus. Mauris sed porttitor odio, id efficitur nisi. Proin vitae velit iaculis, posuere ante vel, venenatis sem. Integer lorem nulla, tempor id nibh eget, faucibus finibus ante. Pellentesque tempus dictum sapien, quis vulputate enim pharetra sit amet. Nullam nibh lorem, aliquet et ullamcorper in, commodo eget nibh. Suspendisse condimentum massa vel ex varius, a finibus risus rutrum. Vivamus interdum vulputate est, sit amet viverra nisi mattis vitae. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Morbi vel posuere elit, et sagittis ex. Phasellus dictum eu urna tristique porta. Suspendisse efficitur, diam sed porttitor auctor, augue ipsum cursus mi, nec congue neque elit in nisl. Ut a ipsum bibendum, auctor lectus et, feugiat augue. Suspendisse sit amet nulla dapibus, euismod nunc sed, pretium libero. Aenean maximus elit sed lacus accumsan, et ullamcorper ante hendrerit. Aliquam accumsan nunc nulla, non ornare leo semper sed. Etiam tristique scelerisque tincidunt. Nullam venenatis congue mollis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer neque diam, pulvinar eget accumsan in, hendrerit vel dolor. Suspendisse maximus fringilla ultricies. Donec ac maximus augue. Etiam neque ligula, aliquam eu ligula vel, malesuada sodales lorem. Aenean orci augue, pulvinar sed sodales nec, maximus sit amet ex. Mauris rutrum augue eu magna finibus facilisis. Duis vel ligula enim. Nam non augue orci. Nullam facilisis, nibh eget lacinia dapibus, sem nisl tempus nisi, non consectetur ligula mauris et felis. Suspendisse potenti. Integer convallis ullamcorper molestie. Maecenas sit amet tincidunt velit, nec accumsan erat. Nam at scelerisque augue. Phasellus porta lectus vitae nisi aliquam, quis laoreet tellus tristique. Duis vehicula odio a velit commodo tempus. Duis condimentum, lectus sed tempor imperdiet, velit sem vulputate arcu, et pretium enim ante vitae lorem. Aenean ut hendrerit augue. Fusce ultricies posuere nisi. Pellentesque nec turpis nisi. Nulla sodales feugiat arcu eget ultrices. Cras sem velit, maximus ut neque in, scelerisque cursus mauris. Pellentesque mauris lectus, congue non erat vel, dictum commodo diam. Cras sed augue nec ipsum convallis dignissim at et risus. Fusce condimentum placerat porttitor. Vestibulum ante ante, tincidunt at tristique eget, suscipit quis ipsum. Vivamus iaculis euismod libero id laoreet. Quisque leo felis, placerat sit amet placerat at, sodales in quam. Nunc vulputate, sapien id commodo fringilla, ex ante laoreet nunc, in mattis diam magna ut sapien. Pellentesque scelerisque tortor justo, ut venenatis nibh malesuada nec. Donec non commodo magna, sed posuere magna. Morbi imperdiet nisl non luctus rhoncus. Phasellus id mi sed tellus dignissim efficitur accumsan quis ex. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce sed scelerisque tellus, a aliquam leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras sed dolor at augue vehicula rhoncus. Sed ultrices, quam eget faucibus placerat, nulla dui imperdiet urna, vel suscipit dui ex vitae quam. Maecenas magna ligula, vulputate sed purus nec, laoreet tempor massa. Ut eu purus vulputate, faucibus tellus sed, accumsan massa. Sed vestibulum eleifend risus, sed tempus sem varius at. Praesent viverra vel urna vel luctus. Morbi dui ipsum, semper vitae congue quis, vulputate id quam. Donec quis gravida purus.";
function greekingResume(data, greekWords) {
let greekObj = {
arr: greekWords.split(/[^A-Za-z]+/),
index: 0
};
function greekHelper(obj, greekObj) {
for (let property in obj) {
if (typeof(obj[property]) === "object") {
obj[property] = greekHelper(obj[property], greekObj);
} else {
obj[property] = obj[property].replace(/[A-Za-z]+/g, (function() {
return function(matching) {
let greekWord = greekObj.arr[greekObj.index++ % greekObj.arr.length];
if (matching[0].match(/[A-Z]/)) {
if (matching[1] && matching[1].match(/[A-Z]/)) {
greekWord = greekWord.toUpperCase();
} else {
greekWord = greekWord[0].toUpperCase() + greekWord.slice(1);
}
}
return greekWord;
};
}()));
}
}
return obj;
}
return greekHelper(data, greekObj);
}
let greekedResume = greekingResume(resume, greekWords);
感谢您花时间查看此内容!
最佳答案
编辑:
好吧,现在我测试了你的脚本,resume
也被更改的原因是因为在 javascript 中将变量传递给函数已经为传递的参数“分配”了一个新值,只是就像您使用等号 (=) 一样。发生的事情是这样的:
resume = obj//您的 greekHelper 函数内的 obj
您的简历
正是在这些行上发生了变化:
obj[属性] = greekHelper(obj[属性], greekObj);
和
obj[属性] = obj[属性].replace(/[A-Za-z]+/g, (function() {
因此,为了避免这种情况,请更改代码的这一部分以添加 newObj
并将变异值分配给新对象并返回该 newObj:
var newObj = {};
for (let property in obj) {
if (typeof(obj[property]) === "object") {
newObj[property] = greekHelper(obj[property], greekObj);
} else {
newObj[property] = obj[property].replace(/[A-Za-z]+/g, (function() {
这是一个适合您的 fiddle http://jsbin.com/rotuhap/edit?js,console,output
这里有一篇值得您阅读的文章:Is JavaScript a pass-by-reference or pass-by-value language?
忽略:您可以将 letresume
更改为 varresume
,resume
也已更新,因为您使用了 let
, let
绑定(bind)新值而不是保留旧的引用值。
这里有一篇关于 let
和 var
的好文章:
<删除> “let” keyword vs “var” keyword
有关使用 let
的更多信息,请查看 let 的文档
关于javascript - JSON 对象在 JavaScript 函数中被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37765225/
最近开始学习MongoDB。今天老师教了我们 mongoexport 命令。在练习时,我遇到了一个典型的问题,包括教练在内的其他同学都没有遇到过。我在我的 Windows 10 机器上使用 Mongo
我是 JSON Schema 的新手,读过什么是 JSON Schema 等等。但我不知道如何将 JSON Schema 链接到 JSON 以针对该 JSON Schema 进行验证。谁能解释一下?
在 xml 中,我可以在另一个 xml 文件中包含一个文件并使用它。如果您的软件从 xml 获取配置文件但没有任何方法来分离配置,如 apache/ngnix(nginx.conf - site-av
我有一个 JSON 对象,其中包含一个本身是 JSON 对象的字符串。我如何反序列化它? 我希望能够做类似的事情: #[derive(Deserialize)] struct B { c: S
考虑以下 JSON { "a": "{\"b\": 12, \"c\": \"test\"}" } 我想定义一个泛型读取 Reads[Outer[T]]对于这种序列化的 Json import
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 11 个月前关闭。 Improve
我的旧项目在 MySQL 中有 Standard JSON 格式的数据。 对于我在 JS (Node.js) 和 DynamoDB 中的全新项目,关于 Standard JSON格式: 是否建议将其转
JSON 值字符串、数字、true、false、null 是否是有效的 JSON? 即,是 true 一个有效的 JSON 文档?还是必须是数组/对象? 一些验证器接受这个(例如 http://jso
我有一个 JSON 字符串,其中一个字段是文本字段。这个文本字段可以包含用户在 UI 中输入的文本,如果他们输入的文本是 JSON 文本,也许是为了说明一些编码,我需要对他们的文本进行编码,以便它不会
我正在通过 IBM MQ 调用处理数据,当由 ColdFusion 10 (10,0,11,285437) 序列化时,0 将作为 +0.0 返回,它会导致无效的 JSON并且无法反序列化。 stPol
我正在从三个数组中生成一个散列,然后尝试构建一个 json。我通过 json object has array 成功了。 require 'json' A = [['A1', 'A2', 'A3'],
我从 API 接收 JSON,响应可以是 30 种类型之一。每种类型都有一组唯一的字段,但所有响应都有一个字段 type 说明它是哪种类型。 我的方法是使用serde .我为每种响应类型创建一个结构并
我正在下载一个 JSON 文件,我已将其检查为带有“https://jsonlint.com”的有效 JSON 到文档目录。然后我打开文件并再次检查,结果显示为无效的 JSON。这怎么可能????这是
我正在尝试根据从 API 接收到的数据动态创建一个 JSON 对象。 收到的示例数据:将数据解码到下面给出的 CiItems 结构中 { "class_name": "test", "
我想从字符串转换为对象。 来自 {"key1": "{\n \"key2\": \"value2\",\n \"key3\": {\n \"key4\": \"value4\"\n }\n
目前我正在使用以下代码将嵌套的 json 转换为扁平化的 json: import ( "fmt" "github.com/nytlabs/gojsonexplode" ) func
我有一个使用来自第三方 API 的数据的应用程序。我需要将 json 解码为一个结构,这需要该结构具有“传入”json 字段的 json 标签。传出的 json 字段具有不同的命名约定,因此我需要不同
我想使用 JSON 架构来验证某些值。我有两个对象,称它们为 trackedItems 和 trackedItemGroups。 trackedItemGroups 是组名称和 trackedItem
考虑以下案例类模式, case class Y (a: String, b: String) case class X (dummy: String, b: Y) 字段b是可选的,我的一些数据集没有字
我正在存储 cat ~/path/to/file/blah | 的输出jq tojson 在一个变量中,稍后在带有 JSON 内容的 curl POST 中使用。它运作良好,但它删除了所有换行符。我知
我是一名优秀的程序员,十分优秀!