我有一个看起来像
的简单数组obj = {1:false, 2:true, 3:true}
我想检索对象中具有值true的所有键的数组。
在python中你可以做到
>>> [key for key in obj if obj[key]]
[2, 3]
在Javascript中是否有单行或其他简单的方法?我也可以访问lodash。
答案 0 :(得分:2)
您可以在任何支持Ecma5的浏览器中使用Object.keys和Array.filter:
执行此操作> Object.keys(obj).filter(function(i) {return obj[i]});
> ["2", "3"]
答案 1 :(得分:1)
使用新的javascript语法,您可以这样做。
$sql = mysqli_query($dbconn, "SELECT * FROM data WHERE id = ?");
$rows = array();
while($r = mysqli_fetch_assoc($sql)) {
$rows[] = $r;
}
答案 2 :(得分:0)
你可以在Firefox 30 +中完成。
obj = {1:false, 2:true, 3:true};
[for (key of Object.keys(obj)) if (obj[key]) key ];
结果
["2", "3"]
目前,它是唯一实施Array Comprehension
的浏览器