类似于Array slice(),是否有可能切割一个对象(而不是循环遍历它的属性)?
简化示例:
例如:获取前两个属性
简化示例:
var obj = {a:"one", b:"two", c:"three", d:"four"};
例如:获取前两个属性
var newObj = {a:"one", b:"two"};
var obj = {a:"one", b:"two", c:"three", d:"four"};
var newObj = {a:"one", b:"two"};
从技术上讲,对象的行为类似于哈希表。因此,没有固定的条目顺序,并且前两个条目不是始终相同的。因此,这是不可能的,特别是不使用迭代对象的条目。
> Object.keys({a: 1, b: 2})
["a", "b"]
> Object.keys({b: 2, a: 1})
["b", "a"]
function objSlice(obj, lastExclusive) {
var filteredKeys = Object.keys(obj).slice(0, lastExclusive);
var newObj = {};
filteredKeys.forEach(function(key){
newObj[key] = obj[key];
});
return newObj;
}
var newObj = objSlice(obj, 2);
omit
函数}}:var newObj = _.omit(obj, Object.keys(obj).slice(2));
你可以使用 var newObj = Object.entries(obj).slice(0, 1)
。
var obj = {a:"one", b:"two", c:"three", d:"four"};
delete obj['d'];
console.info(obj)
/*
sorry i forgot to put quote around d property name
o/p
[object Object] {
a: "one",
b: "two",
c: "three"
}
*/