从数组javascript创建新对象
create new object from array javascript
我得到了这个对象:
var obj = {
name : 'Allen',
last : 'Jones',
age : 24,
city : 'London'
}
和这个阵列:['name', 'age', 'city']
从所选字段创建对象的最有效方法是什么?比如下面,没有删除第一个属性吗?
obj2 = {name: 'allen', age: 24, city: 'London'}
我建议使用Array#forEach()
并迭代新对象的给定键。
var obj = { name: 'Allen', last: 'Jones', age: 24, city: 'London' },
array = ['name', 'age', 'city'],
obj2 = {};
array.forEach(function (a) {
obj2[a] = obj[a];
});
document.write('<pre>' + JSON.stringify(obj2, 0, 4) + '</pre>');
尝试这个简单的循环
var obj = {
name : 'Allen',
last : 'Jones',
age : 24,
city : 'London'
};
var obj2 = {};
var arr = ['name','age','city'];
arr.forEach(function(val){
obj2[val] = obj[val];
});
现在obj2应该只有选定的属性
您可以使用循环来遍历每个属性。有很多方法可以实现这一点,例如for循环、while循环或foreach循环。这里有一个,使用一个简单的for循环:
var obj = {
name: 'Allen',
last: 'Jones',
age: 24,
city: 'London'
};
var arr = ['name', 'age', 'city'];
var obj2 = {};
for (var i = 0; i < arr.length; i++) {
var property = arr[i];
obj2[property] = obj[property];
}
在这里可以看到现场示例。
您可以从现有对象中删除"last"属性,对象将与您想要的相同。
var obj = {
name : 'Allen',
last : 'Jones',
age : 24,
city : 'London'
}
delete obj.last;
console.log(obj);
希望得到帮助。
下面是一个具有所需输出的通用方法:
var obj = {
name : 'Allen',
last : 'Jones',
age : 24,
city : 'London'
};
obj2 = ['name', 'age', 'city'];
function createObject(obj, arr) {
var newObj = {};
arr.forEach(function(value) {
if(obj.hasOwnProperty(value)) {
newObj[value] = obj[value];
}
});
return newObj;
}
document.write(JSON.stringify(createObject(obj, obj2)));
在这个答案下显示了许多不错的方法。这是一个函数可链接的方法。
var obj = {
name : 'Allen',
last : 'Jones',
age : 24,
city : 'London'
},
arr = ['name', 'age', 'city'],
res = arr.reduce((p,c) => {p[c] = obj[c]; return p} ,{});
document.write("<pre>" + JSON.stringify(res) + "</pre>");
相关文章:
- 查找关键字并创建新对象
- 创建新对象时,为什么要更新旧对象
- 为什么要使用立即调用的函数来创建新对象
- 剑道网格-插入具有外部列的新对象失败
- 将原型调用为新对象中的另一个原型
- 将新对象添加到本地存储
- $$hashKey在Angular中push()新对象时未生成新值
- 从分析类传递现有对象,否则创建一个新对象
- 为什么这个功能打印“;未定义的未定义的“;作为联系人名称,添加“新对象”
- Will my'新对象'在套接字断开连接时被垃圾收集
- 从数组javascript创建新对象
- 为新对象添加函数,将对象添加到数组中.理解困难'这'关键字
- 在for循环-Javascript中创建新对象
- Javascript:使用一个预先存在的对象值作为一个新对象的键
- 确定是创建新对象还是更新现有对象
- 返回它在Javascript中构建的新对象
- 如何使用Typescript创建一个包含对象的字段的新对象
- Sinon:存根和整个对象,并将其替换为新对象
- JavaScript:创建新对象类型的方法
- 将新对象“附加”到 ng 重复项