I wrote this code:
function unusedDigits(numbers) {
let s = numbers.join('');
let arr = s.split('');
let ch = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
let arraRes = [];
for (let i = 0; i < ch.length; i++){
if (!arr.includes(ch[i])) {
arraRes += ch[i];
}
}
return String(arraRes); // also tried return arraRes + "";
}
console.log(unusedDigits([12, 34, 56, 78])); //09
console.log(unusedDigits([2015, 8, 26])); //3479
But I can't understand why a number on output. I need on output numbers with quotes - "09" and "3479"
The following line:
arraRes += ch[i];
Converts the array into a string. You should use push() to add stuff to an array. This way the array is preserved and you're getting an array of string as return
function unusedDigits(numbers) {
let s = numbers.join('');
let arr = s.split('');
let ch = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
let arraRes = [];
for (let i = 0; i < ch.length; i++){
if (!arr.includes(ch[i])) {
arraRes.push(ch[i]);
}
}
return arraRes;
}
console.log(unusedDigits([12, 34, 56, 78])); //09
console.log(unusedDigits([2015, 8, 26])); //3479
Two possible ways:
Example with string simple concat
function unusedDigits(numbers) {
let s = numbers.join('');
let arr = s.split('');
let ch = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
let strRes= '';
for (let i = 0; i < ch.length; i++){
if (!arr.includes(ch[i])) {
strRes += ch[i] + ', ';
}
}
return strRes;
}
console.log(unusedDigits([12, 34, 56, 78])); //09
console.log(unusedDigits([2015, 8, 26])); //3479
Example with array
function unusedDigits(numbers) {
let s = numbers.join('');
let arr = s.split('');
let ch = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
let arraRes = [];
for (let i = 0; i < ch.length; i++){
if (!arr.includes(ch[i])) {
arraRes.push(ch[i]);
}
}
return String(arraRes); // also tried return arraRes + "";
}
console.log(unusedDigits([12, 34, 56, 78])); //09
console.log(unusedDigits([2015, 8, 26])); //3479
Conclusion: I would prefer the first one because you dont need to cast the array back to an string.