- 5
- 4
- 3
- 1
- 8
- 0
- 0
- 0
- 1
- 3
- 2
ArrayEditor
Для новой версии Typo я написал очень удобную функцию ArrayEditor, при помощи которой можно легко редактировать массивы.
- Удалять любой элемент массива, достаточно прописать перед нужным элементом знак минуса (-);
- добавлять элемент к существующему массиву, перед элементов знак плюса (+);
- заменять элемент одного массива на другой, просто вводим название удаляемого элемента ~ новый элемент;
Code
<script>
function arrayEditor(a,b){
var u=typeof b=="string"?[b]:b,a=typeof a=="string"?[a]:a;
for(var i=0,r;i<u.length;i++){
r=u.length==1?u[0]:u[i];
if(/^\+/g.test(r)){
a.push(r.replace(/^\+/g,""))
}
else if(/^-/g.test(r)){
for(var o=0;o<a.length;o++){
if(a[o]==r.replace(/^-/g,"")){
a.splice(o,a[o]==a[0]?o+1:o)
}
}
}
else if(/~/g.test(r)){
r=r.split("~");
for(var o=0;o<a.length;o++){
if(a[o]==r[0]){
a[o]=r[1];
}
}
}
else{
a=b
}
}
return a
}
</script>
function arrayEditor(a,b){
var u=typeof b=="string"?[b]:b,a=typeof a=="string"?[a]:a;
for(var i=0,r;i<u.length;i++){
r=u.length==1?u[0]:u[i];
if(/^\+/g.test(r)){
a.push(r.replace(/^\+/g,""))
}
else if(/^-/g.test(r)){
for(var o=0;o<a.length;o++){
if(a[o]==r.replace(/^-/g,"")){
a.splice(o,a[o]==a[0]?o+1:o)
}
}
}
else if(/~/g.test(r)){
r=r.split("~");
for(var o=0;o<a.length;o++){
if(a[o]==r[0]){
a[o]=r[1];
}
}
}
else{
a=b
}
}
return a
}
</script>
Code
arrayEditor(array_1,array2)
// например
arrayEditor(["item1","item2","item3"],["+item152","-item2","item3~arrayEditor"]) // вернет item1,arrayEditor,item152
// например
arrayEditor(["item1","item2","item3"],["+item152","-item2","item3~arrayEditor"]) // вернет item1,arrayEditor,item152
Всем спасибо :)
Дата: 18.09.2010 • Теги:
array, массивы, массив, arrayEditor, javascript
↑ +4 ↓
- Не найдено.


