javascript - 检查对象是否有key和value

标签 javascript arrays json object filter

类(class)对象:

data.courses: [{name: 'JAVA', categoryid: '1'},
{name: 'PHP', categoryid: '1'},
{name: 'HR', categoryid: '2'}]

类别对象:

data.categories: [{catname: 'Information technology',categoryid: '1'},
{catname: 'HR',categoryid: '2'},
{catname: 'Sales',categoryid: '3'}]

我的预期结果:

finalObjCategories对象:

 data.finalObjCategories: [{catname: 'Information technology',categoryid: '1'},
 {catname: 'HR',categoryid: '2'}] 

//{catname: 'Sales',categoryid: '3'} 已删除,因为类(class)对象中不存在此类别的类(class)。

我只想获取那些类别有类(class)数据的类别记录,我该怎么做?

while(grCategory.next())  {
  var categoryName=grCategory.getValue('name');
  var categoryId=grCategory.getUniqueValue();
  //here condition needed(couse cat lenght > 1 push else dontpush)
  //if (data.courses.hasOwnProperty('name');){
      data.categories.push({name: categoryName, id: categoryId});
  //}
}

最佳答案

你的问题真的很不清楚,但如果我理解它,你可以使用 .map.find 来得到你想要的。

var courses =  [
  {name: 'JAVA',categoryid: '1'},
  {name: 'PHP',categoryid: '1'},
  {name: 'HR',categoryid: '2'}
]
                
var categories = [
  {catname: 'Information technology',categoryid: '1'},
  {catname: 'HR',categoryid: '2'},
  {catname: 'Sales',categoryid: '3'}
]

var result = [];
courses.map(function(course){
  var crs = categories.find(function(cat){return course.categoryid == cat.categoryid})

  if(typeof crs !== "undefined" && result.indexOf(crs) < 0){
    result.push(crs);
  }    
})

console.log(result)

Here is the fiddle.

关于javascript - 检查对象是否有key和value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49235842/

相关文章:

java - 将 progressDialog 添加到 JSON Parser 类并为 MainActivity 返回方法

javascript - 用页眉扩展边距

javascript - 从 HTML 片段创建节点列表后,.find() 无法按预期工作

java - 数组的 setter 和 getter

objective-c - 从 fwrite 参数获取数据数组的内容 - 使用 Objective-C 打印数据

android - JSON 字符串到 TextView 换行符

javascript - JSON 编码在 ajax 函数中无法正常工作

javascript - 这些函数调用有什么区别?

c - 在 C 语言中,是否可以像在 char 数组声明中初始化字符串一样在指针声明中初始化字符串?

java - 从 PlayFramework 表单发布 JSON 数据