有人告诉我,我应该为信息功能而不是箭头功能使用“香草”语法功能。
另外,有人告诉我不要在info函数中声明函数fNums
,这应该在函数外部完成
我是JavaScript的新手,刚刚从昨晚开始学习,所以我不确定什么是正确的-它们都可以使用,但是我想知道最佳实践
这是我听说应该完成的方式:
var anObj = {
'10000': 'stone',
'10000000': 'wood'
};
const fNums = n => {
if (n < 1e3) return n;
if (n >= 1e3 && n < 1e6) return +(n / 1e3).toFixed(1) + "K";
if (n >= 1e6 && n < 1e9) return +(n / 1e6).toFixed(1) + "M";
if (n >= 1e9 && n < 1e12) return +(n / 1e9).toFixed(1) + "B";
if (n >= 1e12) return +(n / 1e12).toFixed(1) + "T";
};
function info() {
Object.keys(anObj).filter(i => {
return anObj[i] == "wood";
}).forEach(e => {
const stats =
`[ <b>Test1:</b> ` +
fNums(Math.round('wood: ', e)) +
` ][ <b>Test 2:</b> ` +
fNums(Math.round('wood: ', e)) +
` ][ <b>Test 3:</b> ` +
fNums(Math.round('wood: ', e)) +
` ]`;
const newNode = document.createElement("div");
newNode.style.color = "black";
newNode.innerHTML = '<div><hr>' + stats + "</div>";
const parentNode = document.querySelector(".myDiv");
parentNode.append(newNode);
})
}
这是我以前做的方式;
var anObj = {
'10000': 'stone',
'10000000': 'wood'
};
const info = () => {
const fNums = n => {
if (n < 1e3) return n;
if (n >= 1e3 && n < 1e6) return +(n / 1e3).toFixed(1) + "K";
if (n >= 1e6 && n < 1e9) return +(n / 1e6).toFixed(1) + "M";
if (n >= 1e9 && n < 1e12) return +(n / 1e9).toFixed(1) + "B";
if (n >= 1e12) return +(n / 1e12).toFixed(1) + "T";
};
Object.keys(anObj).filter(i => {
return anObj[i] == "wood";
}).forEach(e => {
const stats =
`[ <b>Test1:</b> ` +
fNums(Math.round('wood: ', e)) +
` ][ <b>Test 2:</b> ` +
fNums(Math.round('wood: ', e)) +
` ][ <b>Test 3:</b> ` +
fNums(Math.round('wood: ', e)) +
` ]`;
const newNode = document.createElement("div");
newNode.style.color = "black";
newNode.innerHTML = '<div><hr>' + stats + "</div>";
const parentNode = document.querySelector(".myDiv");
parentNode.append(newNode);
})
}