数字转中文
function numberToEnglish(num) {
if (num < 0 || num > 999999999) {
return 'Number out of range';
}
const ones = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
const teens = ['eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];
const tens = ['ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];
const bigs = ['', 'thousand', 'million', 'billion'];
if (num < 10) {
return ones[num];
} else if (num < 20) {
return teens[num - 11];
} else if (num < 100) {
const ten = tens[Math.floor(num / 10) - 1];
const one = num % 10 !== 0 ? ones[num % 10] : '';
return `${ten} ${one}`.trim();
} else if (num < 1000) {
const hundred = ones[Math.floor(num / 100)] + ' hundred';
const rest = numberToEnglish(num % 100);
return `${hundred} ${rest}`.trim();
} else {
let result = '';
let count = 0;
while (num > 0) {
if (num % 1000 !== 0) {
result = `${numberToEnglish(num % 1000)} ${bigs[count]} ${result}`.trim();
}
num = Math.floor(num / 1000);
count++;
}
return result;
}
}
const getObjectKeys = (obj = {}, keys = []) =>
Object.keys(obj).reduce(
(acc, key) => (keys.includes(key) && (acc[key] = obj[key]), acc),
{}
);
const obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
const newObj = getObjectKeys(obj, ["a", "b", "c", "d"]);
console.log(newObj);