javascript - 如何根据数组索引更改文本颜色?
问题描述
所以我有这个代码。我想根据数组索引创建一个剥离的颜色。如果索引是偶数,我想要“这个”颜色,如果索引是奇数,我想要“那个”颜色。
这是我的代码:
function App() {
const ships = [
{
id: 1,
name: "Admiral Hipper",
type: "Heavy Cruiser",
faction: "Kriegsmarine",
},
{
id: 2,
name: "USS Essex",
type: "Aircraft Carrier",
faction: "United States Navy",
},
{
id: 3,
name: "IJN Ayanami",
type: "Destroyer",
faction: "Imperial Japanese Navy",
},
{ id: 4, name: "HMS Rodney", type: "Battleship", faction: "Royal Navy" },
];
const handleColor = (ship) => {
if (ships.length % 2 == 0) {
return <p style={{ color: "red" }}>{ship.name}</p>;
} else {
return <p style={{ color: "blue" }}>{ship.name}</p>;
}
};
return (
<div className="App">
{ships.map((ship) => {
return <p>{handleColor(ship)}</p>;
})}
</div>
);
}
export default App;
解决方案
在您的handleColor
函数中,您正在检查数组的长度,ships
它是一个常数。所以,你会为每个元素获得相同的颜色。
map
您可以在函数中获取当前元素的索引。然后你可以在那里查看索引。
你可以像这样轻松地做到这一点。
return (
<div className="App">
{ships.map((ship, index) => {
return <p style={{ color: index % 2 ? "blue" : "red" }}>{ship.name}</p>;
})}
</div>
);
请检查这个 jsFiddle。 https://jsfiddle.net/40vdckwx/3/
推荐阅读
- c# - SQL 如何替换一个值
- python - 使用 python 和请求,如何进行正确的 POST 调用以及在哪里找到标头?
- android - FirebaseAppDistribution:appDistributionUpload gradle 命令中缺少应用程序 ID
- mysql - 跨列和行计算值的实例
- javascript - 使用 redux 钩子时使用 redux 操作的最佳选择是什么?
- sql - Impala 2.11:AnalysisException:选择列表中不支持子查询
- swift - 在 SwiftUI 中获取当前的经纬度
- c++ - 是否可以禁止一个类被动态转换为?
- git - Git - 将发布分支合并到主分支
- tensorflow - 任何想法如何解决激活函数的问题?