我在JS中有以下对象。如何选择除第一个financial_year
以外的所有键并将其放入一个新的空对象?
我知道我可以执行类似obj["mainline_revenue"]
之类的操作来选择单个元素,但它有很长的列表,而且我不想单独键入元素键。
var obj = {financial_year: 1, mainline_revenue: 18743, regional_revenue: 2914, other_revenue: 3198, salaries_wages: -6897}
var newObj = {}
新对象看起来像这样:
console.log(newObj)
{mainline_revenue: 18743, regional_revenue: 2914, other_revenue: 3198, salaries_wages: -6897}
答案 0 :(得分:1)
您可以使用Object.assign
克隆对象,然后使用delete
删除不需要的属性:
var newObj = Object.assign({}, obj);
delete newObj.financial_year;
当然还有其他更多功能性的方法来实现这一点,可能是通过过滤密钥,然后缩减为对象:
var newObj = Object.keys(obj).filter(key =>
key !== 'financial_year'
).reduce((newObj, currKey) =>
(newObj[currKey] = obj[currKey], newObj),
{});
虽然如果你有一系列密钥,这种方法更适合你想要过滤掉,你可以检查密钥是否在filter
回调中的数组中