JavaScript。检查值是否不在对象数组中
我有两张单子。一个大一个小。我添加了无限滚动,以保持从较大列表添加到较小列表的项目JavaScript。检查值是否不在对象数组中,javascript,arrays,Javascript,Arrays,我有两张单子。一个大一个小。我添加了无限滚动,以保持从较大列表添加到较小列表的项目 // Bigger list (data from DB) var data; // Smaller list $scope.projects = []; $scope.$watch('projectSearch', function (val) { if (typeof val !== 'undefined' && val !== "") { //console.l
// Bigger list (data from DB)
var data;
// Smaller list
$scope.projects = [];
$scope.$watch('projectSearch', function (val) {
if (typeof val !== 'undefined' && val !== "") {
//console.log("SEARCH: " + val);
for (var a = 0; a < data.length; a++) {
if (data[a].name.toLowerCase().indexOf(val) > -1) {
console.log("FOUND: " + data[a].name);
if($scope.projects.indexOf(data[a].name) === -1) {
console.log("PUSHED " + data[a].name);
$scope.projects.push( data[a]);
} else {
console.log("ALREADY IN " + data[a].name);
}
}
}
}
});
$scope.projects
应该是string
类型,假设数据[a]。name
是string,那么你的indexOf函数就应该是$scope。projects
应该是string
类型,假设数据[a]。name
是string,那么你的indexOf函数就应该正确地检查数据[a]
,而不是其属性名称
if($scope.projects.indexOf(data[a]) === -1) {
console.log("PUSHED " + data[a].name);
$scope.projects.push( data[a]);
}
此外,您还可以在复制后删除
数据[a]
,以加快下一步搜索速度您应该检查数据[a]
,而不是其属性名称
if($scope.projects.indexOf(data[a]) === -1) {
console.log("PUSHED " + data[a].name);
$scope.projects.push( data[a]);
}
此外,您可以在复制后删除
数据[a]
,以加快下一次搜索速度您没有按名称
<代码>$scope.projects.push(数据[a].name)代码>我推送对象,这一个工作正常:)您没有推送名称
<代码>$scope.projects.push(数据[a].name)代码>我推送对象,这个很好:)我只推送包含输入字段中字符的对象。我不检查它是否是字符串。我只从输入字段中推送包含字符的对象。我不检查它是否是字符串。
if($scope.projects.indexOf(data[a]) === -1) {
console.log("PUSHED " + data[a].name);
$scope.projects.push( data[a]);
}