依次取陣列的每個四位數字,當發現所有數字 0-9 時,回傳您所在的數字。如果不能找到所有數字,則回傳“缺少數字!”
我試圖回圈然后設定一個條件 if (i != i 1) push into new array 這只是給了我這個陣列,顯然我的邏輯是錯誤的。誰能幫幫我
例如用 arr =findAllDigits([5175, 4538, 2926, 5057, 6401, 4376, 2280, 6137, 8798, 9083]) 呼叫這個函式應該回傳 5057
在呼叫 arr=findAllDigits([4883, 3876, 7769, 9846, 9546, 9634, 9696, 2832, 6822, 6868]) 時,應該回傳“缺失的數字”
function findAllDigits(arr) {
newArr = [];
for (let i = 0; i < arr.length; i ) {
if (arr[i] != arr[i 1]) newArr.push(arr[i]);
console.log(newArr);
}
}
我是否需要拆分,因為它將逗號之前的所有內容都作為一個數字?然后迭代?
uj5u.com熱心網友回復:
您可以在此處使用Set
回圈array然后創建一個set,如果set大小變為,則必須回傳當前數字,10因為您需要檢查0-9
function findAllDigits(arr) {
const set = new Set();
for (let n of arr) {
String(n)
.split("")
.forEach((c) => set.add(c));
if (set.size === 10) return n;
}
return "Missing digits!";
}
const arr1 = [5175, 4538, 2926, 5057, 6401, 4376, 2280, 6137, 8798, 9083];
const arr2 = [4883, 3876, 7769, 9846, 9546, 9634, 9696, 2832, 6822, 6868];
console.log(findAllDigits(arr1));
console.log(findAllDigits(arr2));
uj5u.com熱心網友回復:
您的 for 回圈只是檢查陣列條目是否等于下一個條目。您需要拆分每個條目中的數字并單獨存盤它們:
function findAllDigits(arr) {
newArr = [];
for (let i = 0; i < arr.length; i ) {
// now iterate the individual digits
const entryAsString = arr[i].toString();
for (let j = 0; j < entryAsString.length; j ) {
// if we haven't seen the digit before, add it to the array
if(!newArr.includes(j) {
newArr.push(j);
}
}
// we know we have all digits when newArr is 10 entries long
if (newArr.length) {
console.log(arr[i]);
// you can also return this value here
}
}
}
uj5u.com熱心網友回復:
另一種解決方案:
const arr1 = [5175, 4538, 2926, 5057, 6401, 4376, 2280, 6137, 8798, 9083];
const arr2 = [4883, 3876, 7769, 9846, 9546, 9634, 9696, 2832, 6822, 6868]
const findAllDigits = (arr) => {
const digits = new Set();
const result = arr.reduce((acc, curr) => {
[...String(curr)].forEach(digits.add, digits);
return ((digits.size === 10) && !acc) ? curr : acc;
}, 0);
return result ? result : 'Missing digits!';
}
console.log(findAllDigits(arr1)); //5057
console.log(findAllDigits(arr2)); //Missing digits!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/331431.html
標籤:javascript 数组
上一篇:jQuery選擇:如何從多個選擇中獲取所選選項文本的陣列
下一篇:將陣列復制到陣列索引C
