如何从对象中选择某些属性
how to select the certain properties from object?
请帮助解决问题。
我有以下对象:
defaults = {
title: undefined,
yMax: undefined,
yMin: undefined,
yPeriod: undefined,
xMax: undefined,
xMin: undefined,
xPeriod: undefined,
dots: {}
}
我需要得到一个类型为"not object"的属性数组。
即,我需要跟随:
[title, yMax, yMin, yPeriod, xMax, xMin, xPeriod]
您可以使用typeof
检查每个属性的类型
var defaults = {
title: undefined,
yMax: undefined,
yMin: undefined,
yPeriod: undefined,
xMax: undefined,
xMin: undefined,
xPeriod: undefined,
dots: {}
}
var a = [];
for (prop in defaults) {
if (typeof defaults[prop] != 'object') a.push(prop);
}
console.log(a);
ES6中只有一行带有Object.keys()
和Array#filter()
:
var defaults = { title: undefined, yMax: undefined, yMin: undefined, yPeriod: undefined, xMax: undefined, xMin: undefined, xPeriod: undefined, dots: {} },
keys = Object.keys(defaults).filter(a => typeof defaults[a] !== 'object');
document.write('<pre>' + JSON.stringify(keys, 0, 4) + '</pre>');
或者ES5是一条单线,也是
var defaults = { title: undefined, yMax: undefined, yMin: undefined, yPeriod: undefined, xMax: undefined, xMin: undefined, xPeriod: undefined, dots: {} },
keys = Object.keys(defaults).filter(function (a) { return typeof defaults[a] !== 'object'; });
document.write('<pre>' + JSON.stringify(keys, 0, 4) + '</pre>');
如果您想以全功能的方式实现这一点,可以将Object.keys
、Array.prototype.filter
和Array.prototype.map
组合起来。
var arr = Object.keys(defaults).filter(function(key) {
return typeof defaults[key] !== 'object';
}).map(function(key) {
return defaults[key];
});
或者用ES6:写同样的东西
let arr = Object.keys(default)
.filter(key => typeof defaults[key] !== 'object')
.map(key => defaults[key]);
这将获得默认情况下不是对象的所有值(这意味着数组也将被排除在外)。如果您只需要钥匙,只需删除map
功能即可。
相关文章:
- jQuery最近父级的数据属性选择器
- 如何使用jQuery按数据日期属性选择元素
- 如何为HTML属性/选择器创建全局名称空间或变量
- 使用 jquery .find() 遍历按类和存储属性选择元素
- 属性选择器不起作用(语法错误、无法识别的表达式)
- 难以获取使用属性选择的节点的子节点
- 根据属性选择元素
- 按给定值的属性选择元素
- 选择由类和属性选择的元素的邻居
- 为什么属性选择器不适用于jQuery
- 基于多属性选择查找选定单选按钮值
- JQuery中的CSS属性选择器
- 使用 jQuery 通过 ID 属性选择 HTML 元素
- Jquery $this属性选择器是否包含单词
- 使用 *= 的 jQuery 属性选择器
- 如何根据属性选择功能
- 如何在jQuery中定义条件属性选择器
- 不区分大小写的 jQuery 属性选择器
- 仅按属性选择元素
- 通过动态更改的属性选择元素