我是JS的初学者,只是想了解下面代码中发生了什么.可能它是愚蠢的但是 - 好吧,就像我说的,我是初学者;)
首先它只是拆分数组,它是makeFriendlyDates(['2016-07-01', '2016-08-04']);函数的参数.
所以,在这个阶段一切都很好看.然而,当我打电话时function changeToFriendly(arr1);,只有存在的原因是将数字改为月份名称,它也会newArr以某种方式改变.
因此,如果我注释掉这一行://changeToFriendly(newArr);那么newArr应该是什么,但是如果它changeToFriendly(newArr);被调出,它会以某种方式改变,newArr而不仅仅是返回月份名称.
我的问题是如果函数不对数组做任何事情,只是遍历它并检查与月份名称对应的数字,如何changeToFriendly(newArr);改变newArr.
function makeFriendlyDates(arr) {
var newArr = [];
var elem;
for (elem in arr) {
newArr.push(arr[elem].split('-'));
}
document.getElementById('result').innerHTML = newArr;
function changeToFriendly(arr1) {
var month = '';
var elem1;
for (elem1 in arr1) {
if (arr1[elem1][1] = '01') {
month = 'January';
} else if (arr1[elem1][1] === '02') {
month = 'February';
} else if (arr1[elem1][1] === '03') {
month = 'March';
} else if (arr1[elem1][1] === '04') {
month = 'April';
} else if (arr1[elem1][1] === '05') {
month = 'May';
} else if (arr1[elem1][1] === '06') {
month = 'June';
} else if (arr1[elem1][1] === '07') {
month = 'July';
} else if (arr1[elem1][1] === '08') {
month = 'August';
} else if (arr1[elem1][1] === '09') {
month = 'September';
} else if (arr1[elem1][1] === '10') {
month = 'October';
} else if (arr1[elem1][1] === '11') {
month = 'November';
} else if (arr1[elem1][1] === '12') {
month = 'December';
}
}
document.getElementById('result1').innerHTML = newArr;
return month;
}
changeToFriendly(newArr);
}
makeFriendlyDates(['2016-07-01', '2016-08-04']);Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<p id="result"></p>
<p id="result1"></p>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
你的问题可能就在=这里:
for (elem1 in arr1) {
if (arr1[elem1][1] = '01') {
^^^
Run Code Online (Sandbox Code Playgroud)
...这意味着你if总是评估为真.