我想使用以下陣列創建一個陣列陣列:
const countries = ['Albania','Bolivia','Canada','Denmark','Ethiopia','Finland','Germany','Hungary','Ireland','Japan','Kenya' ];
輸出應如下所示:
[['Albania', 'ALB', 7],['Bolivia', 'BOL', 7],['Canada', 'CAN', 6],['Denmark', 'DEN', 7],['Ethiopia', 'ETH', 8],['Finland', 'FIN', 7],['Germany', 'GER', 7],['Hungary', 'HUN', 7],['Ireland', 'IRE', 7],['Japan', 'JAP', 5],['Kenya', 'KEN', 5]]
我必須只使用“回圈”或嵌套的“回圈”而不是使用任何函式方法來做到這一點,所以我的代碼如下:
const countries = ['Albania', 'Bolivia', 'Canada', 'Denmark', 'Ethiopia', 'Finland', 'Germany', 'Hungary', 'Ireland', 'Japan', 'Kenya'];
let arr = [];
let i = 0;
while (i < countries.length) {
arr.push(countries[i], countries[i].slice(0, 3).toUpperCase(), countries[i].length);
i
console.log(arr);
}
我得到如下輸出:
[ 'Albania', 'ALB', 7 ][ 'Albania', 'ALB', 7, 'Bolivia', 'BOL', 7 ]['Albania', 'ALB',7,'Bolivia','BOL',7,'Canada', 'CAN',6]['Albania', 'ALB',7,'Bolivia','BOL',7,'Canada', 'CAN',6,'Denmark','DEN',7]['Albania','ALB',7,'Bolivia','BOL',7,'Canada','CAN',6, 'Denmark','DEN',7,'Ethiopia', 'ETH',8]['Albania', 'ALB', 7,'Bolivia', 'BOL', 7,'Canada','CAN',6,'Denmark','DEN', 7,'Ethiopia','ETH', 8,'Finland','FIN', 7]['Albania', 'ALB',7,'Bolivia', 'BOL', 7,'Canada', 'CAN', 6,'Denmark', 'DEN', 7,'Ethiopia','ETH', 8,'Finland', 'FIN', 7,'Germany', 'GER', 7]['Albania', 'ALB', 7,'Bolivia', 'BOL', 7,'Canada', 'CAN', 6,'Denmark', 'DEN', 7,'Ethiopia', 'ETH', 8,'Finland', 'FIN', 7,'Germany', 'GER', 7,'Hungary', 'HUN', 7]['Albania', 'ALB', 7,'Bolivia', 'BOL', 7,'Canada', 'CAN', 6,'Denmark', 'DEN', 7,'Ethiopia', 'ETH', 8,'Finland', 'FIN', 7,'Germany', 'GER', 7,'Hungary', 'HUN', 7,'Ireland', 'IRE', 7]['Albania', 'ALB', 7,'Bolivia', 'BOL', 7,'Canada', 'CAN', 6,'Denmark', 'DEN', 7,'Ethiopia', 'ETH', 8,'Finland', 'FIN', 7,'Germany', 'GER', 7,'Hungary', 'HUN', 7,'Ireland', 'IRE', 7,'Japan', 'JAP', 5]['Albania', 'ALB', 7,'Bolivia', 'BOL', 7,'Canada', 'CAN', 6,'Denmark', 'DEN', 7,'Ethiopia', 'ETH', 8,'Finland', 'FIN', 7,'Germany', 'GER', 7,'Hungary', 'HUN', 7, 'Ireland', 'IRE', 7,'Japan', 'JAP', 5,'Kenya', 'KEN', 5]
誰能幫助我在我的代碼中應該修改什么以獲得正確的輸出
uj5u.com熱心網友回復:
您可以使用地圖功能輕松制作。
const countries = ['Albania','Bolivia','Canada','Denmark','Ethiopia','Finland','Germany','Hungary','Ireland','Japan','Kenya' ];
const countriesGroup = countries.map((country) => [
country,
country.slice(0, 3).toUpperCase(), // convert name to three letters
country.length // get string length
])
console.log(countriesGroup)
uj5u.com熱心網友回復:
您的代碼中有 2 個錯誤
- 您想將一個陣列推入您的陣列,但您沒有將其包圍,
[]因此您實際上將 3 個新專案推入了您的輸出陣列 - 您
console.log在回圈內,因此每次迭代都會輸出 - 這應該在回圈外。
const countries = ['Albania', 'Bolivia', 'Canada', 'Denmark', 'Ethiopia', 'Finland', 'Germany', 'Hungary', 'Ireland', 'Japan', 'Kenya'];
let arr = [];
let i = 0;
while (i < countries.length) {
arr.push([countries[i], countries[i].slice(0, 3).toUpperCase(), countries[i].length]);
i
}
console.log(arr);
uj5u.com熱心網友回復:
- 您在 te 回圈中記錄結果,因此每次迭代都會顯示完整的陣列;
- 不需要
while回圈,你可以使用for ... of; - 將
Array具有 3 個值的 a 推送到新陣列; - 或者,您可以
Array.map,正如其他答案中已經制定的那樣
const countries = [
'Albania', 'Bolivia', 'Canada', 'Denmark',
'Ethiopia', 'Finland', 'Germany', 'Hungary',
'Ireland', 'Japan', 'Kenya'];
let arr = [];
// use for ... of
for (let country of countries) {
arr.push([country, country.slice(0, 3).toUpperCase(), country.length]);
// ^ push an array
}
// display the result once
console.log(JSON.stringify(arr));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/497510.html
標籤:javascript
