将JavaScript中的数组复制到另一个数组时:
var arr1 = ['a','b','c'];
var arr2 = arr1;
arr2.push('d'); //Now, arr1 = ['a','b','c','d']
Run Code Online (Sandbox Code Playgroud)
我意识到arr2引用相同的数组arr1,而不是一个新的独立数组.如何复制数组以获得两个独立的数组?
代码(一个简单的替换循环):
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)
Run Code Online (Sandbox Code Playgroud)
因此,在这两个这种情况下data,并tree具有相同的输出:
<h1>Test</h1>
<h2>Test</h2>
Lorem "**ipsum?**" dolor 'sit!' amet
Anooo
* * *
"Ipsum?" "'**dolor**'" *sit!* amet, consetetur
eirmod tempor--invidunt **ut** labore …Run Code Online (Sandbox Code Playgroud) 当我在temp上使用splice时,mainArray也被修改了,这是正常的吗?
console.log(mainArray);
var temp = mainArray;
temp.airfares.splice(index, 1);
Run Code Online (Sandbox Code Playgroud) 我试图在JavaScript中使用.reverse()方法来反转数组的顺序,但也试图保留原始数组中元素的原始顺序.当我将值保存到变量中时,我最终转换原始数组中的元素以及创建具有相同格式的新元素.执行此任务最有说服力的方法是什么?
var arrayOne = [1,2,3,4,5];
var arrayTwo = arrayOne.reverse();
//arrayTwo = [5, 4, 3, 2, 1]
//arrayOne = [5, 4, 3, 2, 1]
Run Code Online (Sandbox Code Playgroud)