代码(一个简单的替换循环):
fs.readFile(filename, 'utf8', function(err, data) {
if (err) throw err
data = data.split('\n\n')
var tree = data
for (var i = 0; i < tree.length; ++i) {
if (tree[i].match(/^#/g)) {
data[i] = data[i]
.replace(/^#### (.*)/gm, '<h4>$1</h4>')
.replace(/^### (.*)/gm, '<h3>$1</h3>')
.replace(/^## (.*)/gm, '<h2>$1</h2>')
.replace(/^# (.*)/gm, '<h1>$1</h1>')
}
}
data = data.join('\n\n')
tree = tree.join('\n\n')
console.log(data)
console.log(tree)
因此,在这种情况下,data
和tree
都具有相同的输出:
<h1>Test</h1>
<h2>Test</h2>
Lorem "**ipsum?**" dolor 'sit!' amet
Anooo
* * *
"Ipsum?" "'**dolor**'" *sit!* amet, consetetur
eirmod tempor--invidunt **ut** labore
Anothes
我想要做的是在data
中保留tree
的原始值,以便仅data
更改,而不是tree
。
怎么做?
tree
应保持如下:
# Test
## Test
Lorem "**ipsum?**" dolor 'sit!' amet
Anooo
* * *
"Ipsum?" "'**dolor**'" *sit!* amet, consetetur
eirmod tempor--invidunt **ut** labore
Anothes
答案 0 :(得分:5)
The slice() method returns a shallow copy of a portion of an array into a new array object.
var tree = data.slice();
答案 1 :(得分:3)
使用黑客
var tree = data.slice(0)
它可以包装到单独的函数/方法中。
答案 2 :(得分:2)
Jquery的
var newObj = obj.extend({}, obj)
AngularJS
var newObj = angular.copy(obj)
普通javascript
JSON.parse(JSON.stringify(obj));