Nat*_*ner 3 javascript typescript lodash
如何使用布尔值取一个简单的对象并将其转换为一个数组,其中只有那些值为true的键才会在数组中结束?
例如:
myObject = {
option1: true,
option2: false,
option3: true,
option4: true
}
Run Code Online (Sandbox Code Playgroud)
变
['option1','option3','option4']
Run Code Online (Sandbox Code Playgroud)
我尝试使用这里_.pick(myObject, Boolean)
建议,但这只是产生一个空对象.我正在使用Typescript,所以如果有任何可以用来完成这个的Typescript魔法,那我也是这样做的.
lodash解决方案是使用lodash#pickBy
和lodash#keys
获取所有真正的密钥.
var result = _(myObject).pickBy().keys().value();
Run Code Online (Sandbox Code Playgroud)
var myObject = {
option1: true,
option2: false,
option3: true,
option4: true
};
var result = _(myObject).pickBy().keys().value();
console.log(result);
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper{min-height:100%;top:0;}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
这可以通过vanilla js轻松实现.
let myObject = {
option1: true,
option2: false,
option3: true,
option4: true
}
let array = Object.keys(myObject).filter(key => myObject[key]);
console.log(array);
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到一个有效的例子.
归档时间: |
|
查看次数: |
463 次 |
最近记录: |