angularjs 检查键是否已经存在,如果不存在则将其推送到 foreach 循环内的范围
angularjs check if key allready exist and if not exist push it to scope inside foreach loop
我首先使用 php 从 Db 获取数据以构建 table ,后来我从套接字获取新的 json 数据并更新 $scope,我需要的是推送$scope.
中不存在的值
angular.forEach(event.market, (market ,keym) => {
angular.forEach($scope.users.results, function(value, key) {
if(value.marketId == keym) // keym = new marketId from socket
{
//do nothing
}
else
{
//push(new valuse);
}
});
});
我遇到的问题是,如果 marketId dosent 与我已经拥有的任何键匹配,那么它会推送不匹配的次数,而不是在不匹配时推送 1 次。
我做错了什么?
谢谢
在推送到某个数组之前,检查 marketId 是否不匹配任何键并且也不存在于数组中。因此,在其他情况下,您将必须为 marketId 检查和数组检查添加条件。
据我了解,您想在数组中添加缺少的对象。我认为您可以通过以下方式简单地实现您想要做的事情:
angular.forEach(event.market, (valueM, keyM) => {
let isDuplicate = $scope.users.results.filter(user => /* some validation here */).length > 0;
if(!isDuplicate) {
// push new values
}
})
解决了我的问题:
angular.forEach(game.market, (market, keym) => {
var addToArray = true;
for (var i = 0; i < $scope.users.results.length; i++) {
if ($scope.users.results[i].marketId == keym) {
addToArray = false;
}
}
if (addToArray) {
$scope.users.results.push({
marketId: keym,
marketName: market.name
});
}
$scope.users.results.marketName = ' ';
$scope.users.results.marketId = ' ';
});
谢谢
我首先使用 php 从 Db 获取数据以构建 table ,后来我从套接字获取新的 json 数据并更新 $scope,我需要的是推送$scope.
中不存在的值angular.forEach(event.market, (market ,keym) => {
angular.forEach($scope.users.results, function(value, key) {
if(value.marketId == keym) // keym = new marketId from socket
{
//do nothing
}
else
{
//push(new valuse);
}
});
});
我遇到的问题是,如果 marketId dosent 与我已经拥有的任何键匹配,那么它会推送不匹配的次数,而不是在不匹配时推送 1 次。 我做错了什么?
谢谢
在推送到某个数组之前,检查 marketId 是否不匹配任何键并且也不存在于数组中。因此,在其他情况下,您将必须为 marketId 检查和数组检查添加条件。
据我了解,您想在数组中添加缺少的对象。我认为您可以通过以下方式简单地实现您想要做的事情:
angular.forEach(event.market, (valueM, keyM) => {
let isDuplicate = $scope.users.results.filter(user => /* some validation here */).length > 0;
if(!isDuplicate) {
// push new values
}
})
解决了我的问题:
angular.forEach(game.market, (market, keym) => {
var addToArray = true;
for (var i = 0; i < $scope.users.results.length; i++) {
if ($scope.users.results[i].marketId == keym) {
addToArray = false;
}
}
if (addToArray) {
$scope.users.results.push({
marketId: keym,
marketName: market.name
});
}
$scope.users.results.marketName = ' ';
$scope.users.results.marketId = ' ';
});
谢谢