Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如果满足条件,则映射数组中的字母_Html_Reactjs_Dictionary_If Statement - Fatal编程技术网

Html 如果满足条件,则映射数组中的字母

Html 如果满足条件,则映射数组中的字母,html,reactjs,dictionary,if-statement,Html,Reactjs,Dictionary,If Statement,我有一个这样的状态: const [word, setWord] = useState([ { letters: ["r", "e", "a", "c", "t"], shows: [0, 0, 0, 0, 1], }, ]); 如果显示[I]==1,我想渲染一个字母,否则我想渲染“u” 如何使用react中的map(或者其他方式)来实现这一点?我的意

我有一个这样的状态:

const [word, setWord] = useState([
    {
      letters: ["r", "e", "a", "c", "t"],
      shows: [0, 0, 0, 0, 1],
    },
  ]);
如果
显示[I]==1
,我想渲染一个字母,否则我想渲染
“u”

如何使用react中的map(或者其他方式)来实现这一点?我的意思是这样的:

map((letter, show) => (
    show == 1 ? letter : '_'
))
您可以使用
.map()

const-word={
字母:[“r”、“e”、“a”、“c”、“t”],
显示:[0,0,0,0,1],
}
console.log(word.letters.map((l,i)=>word.shows[i]==0?”)
您可以使用
.map()

const-word={
字母:[“r”、“e”、“a”、“c”、“t”],
显示:[0,0,0,0,1],
}

console.log(word.letters.map((l,i)=>word.shows[i]==0?”\u:l))
您也可以尝试对象解构

const { letters, shows } = word[0]
console.log(letters.map((l, i) => (shows[i] == 1 ? l : '_')))

您也可以尝试对象分解

const { letters, shows } = word[0]
console.log(letters.map((l, i) => (shows[i] == 1 ? l : '_')))

map
在数组上工作,因此您需要映射
字母
显示
。这两个数组总是长度相同吗?是否要显示与
shows
数组中的1具有相同索引的字母?为什么不创建一个对象数组
[{letter:'r',show:0},{letter:'e',show:1}等]
map
在数组上工作,因此您需要映射
字母
shows
。这两个数组总是长度相同吗?是否要显示与
shows
数组中的1具有相同索引的字母?为什么不创建一个对象数组<代码>[{字母:'r',show:0},{字母:'e',show:1}等]这有一些假设,我问过,你从来没有回答,@MAXIM7。如果您回答了评论的问题,您会更快得到答案。@MAXIM7如果这回答了您的问题,请单击复选标记(✓) 接受它(一旦系统允许)。这样其他人就知道你得到了(足够的)帮助。还要注意,这会产生一些假设,我问了这些假设,而你从来没有回答过@MAXIM7。如果你回答了评论中的问题,你会更快得到答案。@MAXIM7如果这回答了你的问题,请单击复选标记(✓) 接受它(一旦系统允许)。这样其他人就会知道你已经(充分)得到了帮助。另请参阅