如何在javascript中从数组和另一个对象传递对象

如何在javascript中从数组和另一个对象传递对象,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我需要根据服务器的响应更新本地数据库中的数据,但我从服务器获得了本地数据库不需要的大量数据,因此我已手动删除了这些不需要的值,但我希望以动态方式执行此操作。因此,我使用pragma从本地数据库中获取了列名称,并将从服务器获取的值与存储在数组中的名称进行了比较。但我想将键和值存储在对象中。有人能告诉我怎么做吗 columns = ['id', 'name', 'category']; category = {id: 122, name: 'ABD', category: 'Food', creat

我需要根据服务器的响应更新本地数据库中的数据,但我从服务器获得了本地数据库不需要的大量数据,因此我已手动删除了这些不需要的值,但我希望以动态方式执行此操作。因此,我使用pragma从本地数据库中获取了列名称,并将从服务器获取的值与存储在数组中的名称进行了比较。但我想将键和值存储在对象中。有人能告诉我怎么做吗

columns = ['id', 'name', 'category'];
category = {id: 122, name: 'ABD', category: 'Food', created_at: '2014-05-20', is_deleted: 'false'};
我需要的结果如下: var数据={id:122,名称:'ABD',类别:'Food'}

代码:

for(var j=0;j
您可以迭代数组并检查元素是否是对象中的属性。如果没有,则可以从对象中删除该属性

for (var j = 0; j < columns.length; j++) {
      if(category[columns[j]] === undefined){
        delete category[columns[j]];
      }
}
for(var j=0;j
编辑:

如注释中所述,如果不想删除属性,可以创建具有所需属性的新对象:

var data = {};
for (var j = 0; j < columns.length; j++) {
    data[columns[j]] = category[columns[j]];
}
console.log(data);
var data={};
对于(var j=0;j
您可以迭代数组并检查元素是否是对象中的属性。如果没有,则可以从对象中删除该属性

for (var j = 0; j < columns.length; j++) {
      if(category[columns[j]] === undefined){
        delete category[columns[j]];
      }
}
for(var j=0;j
编辑:

如注释中所述,如果不想删除属性,可以创建具有所需属性的新对象:

var data = {};
for (var j = 0; j < columns.length; j++) {
    data[columns[j]] = category[columns[j]];
}
console.log(data);
var data={};
对于(var j=0;j
如果您愿意,请选择lodash单线解决方案:

var data = _.map(category , _.partialRight(_.pick, ['id', 'name', 'category']));

lodash文档此处是lodash单线解决方案,如果您愿意:

var data = _.map(category , _.partialRight(_.pick, ['id', 'name', 'category']));

lodash docs here

但我不想删除我需要为本地db中可用的列获取值的额外内容。Hi@Nidhinkumar请检查它是否解决了您的问题,如果解决了,请接受答案。但我不想删除我需要为本地db中可用的列获取值的额外内容。Hi@Nidhinkumar现在请检查它是否解决了您的目的,如果解决了,请接受答案。使用reduce对这类事情很好,例如->
columns.reduce((a,v)=>(a[v]=category[v])&&a,{})如果您不介意使用ES6,您想让我解释一下它是如何工作的,让我们知道..使用reduce对这类事情很好,例如->
列。reduce((a,v)=>(a[v]=category[v])&&a,{})如果您不介意使用ES6,并且您想让我解释这是如何工作的,请告诉我们。。