/
ArrayViewer.jsx
59 lines (54 loc) · 1.3 KB
/
ArrayViewer.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
var _ = require('underscore');
var React = require('react');
var ArrayViewer = React.createClass({
defaultProps: {
arr: React.PropTypes.array.isRequired,
title: React.PropTypes.string
},
render: function() {
var cellSize = 25;
var padding = 5;
var styles = {
listItem: {
display: "inline-block",
listStyle: "none"
},
array: {
display: "inline-block",
margin: "10px 0",
padding: 0
},
cell: {
width: cellSize,
padding: padding - 2,
boxSizing: "border-box",
textAlign: "center",
color: "#ccc",
fontSize: 12
},
arrayCell: {
height: cellSize,
width: cellSize,
padding: padding,
textAlign: "center",
borderTop: "1px solid #ddd",
boxSizing: "border-box"
}
};
var values = _.map(this.props.arr, function(num, key) {
return (<li key={"item-" + key} style={styles.listItem}>
<div style={styles.cell}>{key}</div>
<div style={styles.arrayCell}>{num}</div>
</li>);
});
return (<div>
<span>{this.props.title + " = "}</span>
<span>{"["}</span>
<ul style={styles.array}>
{values}
</ul>
<span>{"]"}</span>
</div>);
}
});
module.exports = ArrayViewer;