我希望能够检查并查看哪些键以字母开头?#34; gra"并且只返回该内容。我已尝试使用下面的代码进行了一些操作。在一种方法中,我在返回html中添加了类似{key.match(/ gra / g)}的内容,但效率不高(并且仍然输出空白内容)。我也试过添加这样的东西:
if(String(this.props.profile[key]).match(/gra/g)))
也尝试过:
if(this.props.profile[key].match(/gra/g))
但不断出现错误,例如" .match"不是一个功能或者不能读取未定义的等等。我已经尝试了其他各种方法,但似乎无法使其正常工作。
var grapes = Object.keys(this.props.profile).map(function(key) {
if(this.props.profile[key] !=null) {
return (
<li key={key} className="example-class">
<label>{key}:</label>{ this.props.profile[key] }
</li>
);
}
}, this);
<html>
{grapes}
</html>
所以,这就是说,使用正则表达式进行过滤的最佳方法是什么?
答案 0 :(得分:2)
为什么不过滤数组
var grapes = Object.keys(this.props.profile)
.filter(function(key) {
return key && key.toLowerCase().indexOf('gra') === 0;
})
.map(function(key) {
return (
<li key={key} className="example-class">
<label>{key}:</label>{ this.props.profile[key] }
</li>
);
}, this);