[英]if condition needed - test if property exists if not then create one
下面是一些代碼,該代碼將覆蓋字符串中的屬性,但是此函數中缺少的條件是測試該屬性是否存在以及是否不存在然后創建它然后返回整個字符串的條件,否則將覆蓋該屬性然后返回目前正在執行的整個字符串。 我已經嘗試過了,但是沒有得到想要的結果。 有人可以看看下面的示例函數來嘗試動態創建新屬性嗎?
var cookieValue =
'id=1&state=normal&theme=purple:
id=2&state=maximized&theme=pink:
id=3&state=maximized&theme=black';
function setProperties(cookie, id , name, value, create) {
var sections = $.map(cookie.split(":"), function (section) {
var pairs;
if (section.indexOf("id=" + id) === 0) {
// if condition here - create a new property
// else run code below
pairs = $.map(section.split("&"), function (pair) {
if (pair.indexOf(name + "=") === 0) {
return name + "=" + value;
}else {
return pair;
}
});
return pairs.join("&");
} else {
return section;
}
});
return sections.join(":");
}
alert(setProperties(cookieValue, '2', 'theme', 'green', true));
alert(setProperties(cookieValue, '2', 'color', 'orange', true)); // new property
請記住,如果您找到了該物業:
if (section.indexOf("id=" + id) === 0) {
// if condition here - create a new property
// else run code below
var found = false;
pairs = $.map(section.split("&"), function (pair) {
if (pair.indexOf(name + "=") === 0) {
return name + "=" + value;
found = true;
} else {
return pair;
}
});
section = pairs.join("&");
if (!found) {
section += "&" + name + "=" + value;
}
}
return section;
如果存在屬性,則將found
的屬性設置為true。 否則,該屬性將附加到該部分。 工作提琴
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.