我正在进行一项无法找到解决方案的练习。这是任务:
创建一个数组来保存您的首选(颜色,总统等)。
对于每个选项,请在屏幕上记录如下字符串:"我的#1选项为蓝色。"
- 醇>
将其更改为记录"我的第一选择,"我的第二选择","我的第三选择",根据什么选择正确的数字后缀它是。
我已完成以下任务的第一部分:
const list = ['blue', 'green', 'yellow', 'red'];
const prefs = ['first', 'second', 'third', 'fourth']; // For the second part
list.forEach((items, index, array) => {
console.log(`My #1 choice is ${items} at position ${index} in the list that contains: ${array}`); // I included additional parameters to better understand the forEach() method
});
我无法解决如何完成练习的第二部分,主要涉及创建一个将list[0]
与prefs[0]
相关联的字符串,并进行迭代。
为此我看到a possible, pre-ES6 solution使用了一个非常详细的if
循环。什么是创建练习第二部分所需的字符串的有效方法?必须有一个比我看到的更好的解决方案吗?
答案 0 :(得分:1)
确保您的列表长度相同:
list.forEach((items, index, array) => {
console.log(`My ${prefs[index]} choice is ${items}.`);
});
答案 1 :(得分:1)
由于您具有列表数组的索引,因此可以使用其索引
轻松调用prefs数组const list = ['blue', 'green', 'yellow', 'red'];
const prefs = ['first', 'second', 'third', 'fourth']; // For the second part
list.forEach((items, index, array) => {
console.log(`My #${index+1} choice is ${items}`); // first part
console.log(`My ${prefs[index]} choice is ${items}`); // second part
});
或者,为了确保您具有相同的数组长度,您可以将其更改为二维数组
const list2 = [
['first', 'blue'],
['second', 'green'],
['third', 'yellow'],
['fourth', 'red'],
];
list2.forEach((items, index, array) => {
console.log(`My #${index+1} choice is ${items[1]}`); // first part
console.log(`My ${items[0]} choice is ${items[1]}`); // second part
});
答案 2 :(得分:0)
练习的第二部分暗示了你应该做的事情。请注意,prefs有Array
(
[key] => WOW... that's cool
)
,1st
等,而不是" first"或"秒"。
我认为,除了解决所有可能性的解决方案之外,您找到的解决方案是最简单的方法。在这方面,英语并不是很好 - 虽然现实地你只需要绘制1-12然后你可以通过那里计算。 21 =" 20" +"首先"。
但是,只需检查那些数字是什么并且正在进行
2nd
等等(或其他)真的是你最好的选择。如果你希望它看起来更好,你可以创建一个函数来返回序数。
答案 3 :(得分:0)
这是一个强大的解决方案,可以正确处理任何数字...
const list = [' blue',' green',' yellow',' red',' purple&#39 ]; const prefs = [' st',' nd',' rd']; //第二部分
const getNumWithSuffix = (i) => {
var j = i % 10,
k = i % 100;
if (j == 1 && k != 11) {
return i + "st";
}
if (j == 2 && k != 12) {
return i + "nd";
}
if (j == 3 && k != 13) {
return i + "rd";
}
return i + "th";
}
list.forEach((items, index, array) => {
console.log(`My ${getNumWithSuffix(index+1)} choice is ${items}.`);
});
...输出
My 1st choice is blue.
My 2nd choice is green.
My 3rd choice is yellow.
My 4th choice is red.
My 5th choice is purple.