我正在使用js& underscore.js,如何转换以下布尔字典:
{first: true, second: false, third: true}
到以下关键数组:
['first', 'third']
答案 0 :(得分:3)
与接受的答案类似,但使用_.identity作为_.pick的谓词来挑选真正的答案:
var result = _.keys(_.pick(data, _.identity));
答案 1 :(得分:2)
在下划线中有函数_.pick
,您可以使用它过滤数据,然后使用.keys
以返回带有对象键的数组
var data = {
first: true,
second: false,
third: true
};
var result = _.chain(data)
.pick(function (value) {
return value;
// or
// return value === true;
// if you need check exact value
})
.keys()
.value();
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>
答案 2 :(得分:0)
Object.keys()应该适合你。 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys)
<?php
// Create array to hold errors
$errors = array();
// Get ID from URL
$user_id = isset($_GET['id']) ? $_GET['id'] : '';
// Check for empty ID
if (empty($user_id)) {
array_push($errors, 'Empty user ID');
} else {
if(!ctype_digit(strval($user_id))) {
array_push($errors, 'Invalid user ID');
} else {
// Get numerical value of string (int or float)
$num_user_id = $user_id + 0;
// Check that number is an int
if (!ctype_digit(strval($num_user_id)))
array_push($errors, 'Invalid user ID');
}
}
?>
请注意,这在IE8等旧版浏览器中未实现。上面的mdn网站有一个ya的polyfill