我在array
中arrays
js
并希望为不同的行添加颜色,因此我为每个元素数组添加新值'color'并设置background-color
我的tr
对此值:
for (var element in res.data.results) {
if(res.data.results[element]['name'] === nextProps.name){
res.data.results[element].color = 'white';
tmpResult.push(res.data.results[element]);
}
}
for (var value in valuesToCheck) {
for (var i = 0; i < (tmpResult.length - 1); i++) {
if(tmpResult[i][valuesToCheck[value]] === tmpResult[i+1][valuesToCheck[value]]){
continue;
} else {
tmpResult[i].color = '#DC143C';
tmpResult[i+1].color = '#DC143C';
}
}
}
<tbody>
{this.state.results.map(result =>
<tr style={{'backgroundColor': result.color}}>
<td>{result.name}</td>
</tr>
)}
</tbody>
我的元素中有很多值(元素是我的结果中的一个数组,这是我的主要对象,我将值从表中取出)现在我想要的颜色不是所有的行,而只是要更改的值。我怎样才能做到这一点?我试图在我的数组中制作一个地图,其中值成为一个键,该键的值将为“颜色”,然后更改我th
中单个单元格的背景:
res.data.results[elem]['name'].color = 'white';
,但我收到了一个错误:
TypeError: can't assign to properties of (new String("my name as string")): not an object
答案 0 :(得分:0)
好的,我刚从元素中的每个值中创建了array
:
for (var elem in res.data.results) {
if(res.data.results[elem]['name'].toLowerCase() === nextProps.name){
res.data.results[elem]['name'] = [res.data.results[elem]['name'], 'black'];
res.data.results[elem]['another_parameter'] = [res.data.results[elem]['another_parameter'], 'black'];
tmpResult.push(res.data.results[elem]);
}
如果我需要,我将其更改为另一种颜色:
for (var value in valuesToCheck) {
for (var i = 0; i < (tmpResult.length - 1); i++) {
if(tmpResult[i][valuesToCheck[value]][0] === tmpResult[i+1][valuesToCheck[value]][0]){
continue;
} else {
tmpResult[i][valuesToCheck[value]][1] = 'red';
tmpResult[i+1][valuesToCheck[value]][1] = 'red';
}
}
}
并将其添加到table
代码中的html
:
<tbody>
{this.state.results.map(result =>
<tr>
<td style={{'color': result['name'][1]}}>{result.name[0]}</td>
<td style={{'color': result['another_value'][1]}}>{result.another_value[0]}</td>
</tr>
)}
</tbody>
我认为存在更好的解决方案,所以我一直在等待回复。