我看了一些例子,但似乎无法解决这个问题。基本上我在离子应用程序中有一个联系表单,允许用户联系列表所有者。
当他们提交表单时,我希望将广告ID存储在本地存储中,以便他们无法重复提交反复提交。
我需要能够存储json数组,然后检查结果。如果广告ID在会话存储中,请不要显示其他形式的广告。
我目前正在执行此操作,它似乎将广告ID存储在数组中,但如何循环检查ID是否存在?我试过角度为每个,但结果作为一个对象。
// Parse any JSON previously stored in allEntries
var existingEntries = JSON.parse(localStorage.getItem("store_owner_ad_contacts"));
if(existingEntries == null) existingEntries = [];
var adId = {
"id":$scope.adId
};
// Save allEntries back to local storage
existingEntries.push(adId);
localStorage.setItem("store_owner_ad_contacts", JSON.stringify(existingEntries));
var values = JSON.parse(localStorage.getItem("store_owner_ad_contacts"));
angular.forEach(values, function(value, key) {
// ^ This is coming as an object how can I get the key value?
if(value == adId){
//form has been submitted before
}else{
// showformVar = true
console.log(key + ': ' + value);
});
我的存储空间如下所示
[{"id":"100033"},{"id":"100035"},{"id":"1000336"}]
我如何获得id值? (例如1000033)
答案 0 :(得分:3)
在你的循环中你有一个对象,所以只需像访问一个对象一样访问id属性:object.yourProperty或object [yourProperty]
let rating = 3.7;
let adjustedRating = (Math.round(rating * 2) / 2);
let tempRating = adjustedRating;
let starsToShow = new Array(5).fill(0);
for(let i=0; i<5; i++) {
if (tempRating > 0.5) {
tempRating -= 1.0;
starsToShow[i] += 1.0;
} else {
starsToShow[i]+= 0.5;
break;
}
}
console.log(starsToShow);
答案 1 :(得分:1)
// inside forEach loop
var k = 0;
for(k in value) {
// u can get the key in this way (k)
}
答案 2 :(得分:1)
正如我所看到的,这不是关于角度本身(使用角度并不意味着关系)。如果您有一组值并想要搜索某些内容,那么您可以使用combine
。
如果您的数据是字符串化数组,那么您应该先使用Array.prototype.find
解析它。
如果您要在角应用中使用localStorage,那么最好使用处理字符串化和解析的ngStorage以及更多选项。
JSON.parse
&#13;