做网站需注意事项,网站开发运营推广叫什么软件,上海有哪些企业,网络营销的看法和理解js中对数组#xff0c; var data [{“name”: “《西游记》”, “author”: “吴承恩”, “cat”: “A级书刊”, “num”: 3},{“name”: “《三国演义》”, “author”: “罗贯中”, “cat”: “A级书刊”, “num”: 8},{“name”: “《红楼梦》”, “author”: “曹雪芹”,… js中对数组 var data [{“name”: “《西游记》”, “author”: “吴承恩”, “cat”: “A级书刊”, “num”: 3},{“name”: “《三国演义》”, “author”: “罗贯中”, “cat”: “A级书刊”, “num”: 8},{“name”: “《红楼梦》”, “author”: “曹雪芹”, “cat”: “B级书刊”, “num”: 10}]如何按照不同的元素进行搜索 根据数组元素的特定属性搜索
在JavaScript中我们可以使用数组的 filter() 方法来根据数组元素的特定属性进行搜索。这个方法会创建一个新的数组新数组的元素是通过检查指定的函数而符合条件的所有元素。
var data [{name: 《西游记》, author: 吴承恩, cat: A级书刊, num: 3},{name: 《三国演义》, author: 罗贯中, cat: A级书刊, num: 8},{name: 《红楼梦》, author: 曹雪芹, cat: B级书刊, num: 10}
];var result data.filter(function(item) {return item.name 《西游记》;
});console.log(result); // 输出[{name: 《西游记》, author: 吴承恩, cat: A级书刊, num: 3}]同样如果我们想按照 “author” 属性搜索 “曹雪芹”我们可以这样做
var result data.filter(function(item) {return item.author 曹雪芹;
});console.log(result); // 输出[{name: 《红楼梦》, author: 曹雪芹, cat: B级书刊, num: 10}]封装函数
将上面的代码改进为一个封装函数以便重复使用。这个函数可以接收两个参数一个是要搜索的数组另一个是要搜索的值。函数会返回一个新数组包含所有匹配的元素。
下面是一个示例
function searchByProperty(array, property, value) {return array.filter(function(item) {return item[property] value;});
}// 使用示例
var data [{name: 《西游记》, author: 吴承恩, cat: A级书刊, num: 3},{name: 《三国演义》, author: 罗贯中, cat: A级书刊, num: 8},{name: 《红楼梦》, author: 曹雪芹, cat: B级书刊, num: 10}
];var result searchByProperty(data, name, 《西游记》);
console.log(result); // 输出[{name: 《西游记》, author: 吴承恩, cat: A级书刊, num: 3}]var result2 searchByProperty(data, author, 曹雪芹);
console.log(result2); // 输出[{name: 《红楼梦》, author: 曹雪芹, cat: B级书刊, num: 10}]在这个示例中searchByProperty 函数接受三个参数array要搜索的数组property要搜索的属性名称如 ‘name’ 或 ‘author’以及 value要搜索的值如 ‘《西游记》’ 或 ‘曹雪芹’。
多个属性搜索
为了支持按多个属性进行搜索修改一下 searchByProperty 函数让 property 参数接受一个属性名称的数组然后在 filter 函数中检查每个属性是否匹配。
下面是一个示例
function searchByProperties(array, properties, value) {return array.filter(function(item) {for (var i 0; i properties.length; i) {if (item[properties[i]] value) {return true;}}return false;});
}// 使用示例
var data [{name: 《西游记》, author: 吴承恩, cat: A级书刊, num: 3},{name: 《三国演义》, author: 罗贯中, cat: A级书刊, num: 8},{name: 《红楼梦》, author: 曹雪芹, cat: B级书刊, num: 10}
];var result searchByProperties(data, [name, author], 《西游记》);
console.log(result); // 输出[{name: 《西游记》, author: 吴承恩, cat: A级书刊, num: 3}]var result2 searchByProperties(data, [author, cat], 曹雪芹);
console.log(result2); // 输出[{name: 《红楼梦》, author: 曹雪芹, cat: B级书刊, num: 10}]在这个示例中searchByProperties 函数接受三个参数array要搜索的数组properties要搜索的属性名称的数组如 [name, author] 或 [author, cat]以及 value要搜索的值如 ‘《西游记》’ 或 ‘曹雪芹’。函数会返回一个新数组包含所有在至少一个属性上匹配的元素。 漏刻有时