|
@@ -0,0 +1,220 @@
|
|
|
+### sort
|
|
|
+
|
|
|
+```javascript
|
|
|
+var persons = [
|
|
|
+ {name: "Иван", age: 17},
|
|
|
+ {name: "Мария", age: 35},
|
|
|
+ {name: "Алексей", age: 73},
|
|
|
+ {name: "Яков", age: 12},
|
|
|
+]
|
|
|
+
|
|
|
+function sort(array, key, bool){
|
|
|
+ function sortType(a,b){
|
|
|
+ if(bool === undefined)
|
|
|
+ bool = true;
|
|
|
+ if(bool){
|
|
|
+ if(a[key] > b[key])
|
|
|
+ return 1
|
|
|
+ else
|
|
|
+ return -1
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if(a[key] < b[key])
|
|
|
+ return 1
|
|
|
+ else
|
|
|
+ return -1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ array.sort(sortType);
|
|
|
+}
|
|
|
+
|
|
|
+sort(persons, "age");
|
|
|
+sort(persons, "name", false);
|
|
|
+console.log(persons);
|
|
|
+```
|
|
|
+
|
|
|
+### array map
|
|
|
+
|
|
|
+```javascript
|
|
|
+var array1 = ["1", {}, null, undefined, "500", 700];
|
|
|
+var array2 = array1.map(function(arrayItem){
|
|
|
+ if(typeof(arrayItem) === "string")
|
|
|
+ return +arrayItem;
|
|
|
+ return arrayItem;
|
|
|
+});
|
|
|
+
|
|
|
+console.log(array2);
|
|
|
+```
|
|
|
+
|
|
|
+### array reduce
|
|
|
+
|
|
|
+```javascript
|
|
|
+var array = ["0", 5, 3, "string", null].reduce(function(previousValue, currentValue, index, array){
|
|
|
+ if(typeof(previousValue) !== "number" )
|
|
|
+ return currentValue;
|
|
|
+ else if(typeof(currentValue) !== "number")
|
|
|
+ return previousValue;
|
|
|
+ else
|
|
|
+ return previousValue * currentValue;
|
|
|
+});
|
|
|
+
|
|
|
+console.log(array);
|
|
|
+```
|
|
|
+
|
|
|
+### object filter
|
|
|
+
|
|
|
+```javascript
|
|
|
+var phone = {
|
|
|
+ brand: "meizu",
|
|
|
+ model: "m2",
|
|
|
+ ram: 2,
|
|
|
+ color: "black",
|
|
|
+};
|
|
|
+
|
|
|
+function filter(object, validate){
|
|
|
+ var obj = {};
|
|
|
+ var keys = Object.keys(object);
|
|
|
+ for (var i = 0; i < keys.length; i++) {
|
|
|
+ if(validate(keys[i], object[keys[i]]))
|
|
|
+ obj[keys[i]] = object[keys[i]];
|
|
|
+ }
|
|
|
+ return obj;
|
|
|
+}
|
|
|
+
|
|
|
+var phone2 = filter(phone,function(key,value){
|
|
|
+ return (key == "color" || value == 2);
|
|
|
+});
|
|
|
+console.log(phone2);
|
|
|
+```
|
|
|
+
|
|
|
+### object map
|
|
|
+
|
|
|
+```javascript
|
|
|
+function map(obj, cond){
|
|
|
+ var keys = Object.keys(obj);
|
|
|
+ var newObject = {};
|
|
|
+ var resObject = {};
|
|
|
+
|
|
|
+ for (var i = 0; i < keys.length; i++) {
|
|
|
+ newObject = cond(keys[i], obj[keys[i]])
|
|
|
+ var keys2 = Object.keys(newObject);
|
|
|
+ resObject[keys2[0]] = newObject[keys2[0]];
|
|
|
+ }
|
|
|
+ return resObject;
|
|
|
+}
|
|
|
+
|
|
|
+var result = map({name: "Иван", age: 17},function(key,value){
|
|
|
+ var result = {};
|
|
|
+ result[key+"_"] = value + "$";
|
|
|
+ return result;
|
|
|
+})
|
|
|
+
|
|
|
+console.log(result);
|
|
|
+```
|
|
|
+
|
|
|
+### Калькулятор
|
|
|
+
|
|
|
+```javascript
|
|
|
+var userVar = prompt("Введите выражение");
|
|
|
+
|
|
|
+console.log(userVar);
|
|
|
+function eval(userVariableInit){
|
|
|
+ var userVariable = [];
|
|
|
+ for (var i = 0; i < userVariableInit.length; i++) {
|
|
|
+ userVariable[i] = userVariableInit[i];
|
|
|
+ }
|
|
|
+ if(userVariable.indexOf("(") > -1)
|
|
|
+ {
|
|
|
+ var userVar = [];
|
|
|
+
|
|
|
+ do{
|
|
|
+ userVariable.splice(userVariable.indexOf("("), 2,eval(userVariable.splice(userVariable.indexOf("(") + 1, userVariable.indexOf(")") - userVariable.indexOf("(") - 1)));
|
|
|
+ }
|
|
|
+ while(userVariable.indexOf("(") > -1)
|
|
|
+ userVar = userVariable;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ var userVar = userVariable;
|
|
|
+
|
|
|
+ var array = [];
|
|
|
+ var bool = true;
|
|
|
+ for (var i = 0, p = 0, c = 0; i < userVar.length ; i++,p++) {
|
|
|
+
|
|
|
+
|
|
|
+ switch(userVar[i]){
|
|
|
+ case "+":
|
|
|
+ array.push("+");
|
|
|
+ bool = false;
|
|
|
+ break;
|
|
|
+ case "-":
|
|
|
+ array.push("-");
|
|
|
+ bool = false;
|
|
|
+ break;
|
|
|
+ case "*":
|
|
|
+ array.push("*");
|
|
|
+ bool = false;
|
|
|
+ break;
|
|
|
+ case "/":
|
|
|
+ array.push("/");
|
|
|
+ bool = false;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ if(i != 0 && bool)
|
|
|
+ {
|
|
|
+ p--;
|
|
|
+ c++;
|
|
|
+ array[p] = userVar[i] + array[p];
|
|
|
+ bool = true;
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ array[p] = userVar[i]
|
|
|
+ bool = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ var result = 0;
|
|
|
+ for (var i = 0; i < array.length; i++) {
|
|
|
+ if(!(i % 2))
|
|
|
+ array[i] = +array[i];
|
|
|
+ }
|
|
|
+ for (var i = 0; i < array.length; i++) {
|
|
|
+ if(i % 2){
|
|
|
+
|
|
|
+ if(array[i] === "+"){
|
|
|
+ if(i === 1)
|
|
|
+ result += array[i - 1] + array[i + 1];
|
|
|
+ else
|
|
|
+ result += array[i + 1];
|
|
|
+ }
|
|
|
+ if(array[i] === "-"){
|
|
|
+ if(i === 1)
|
|
|
+ result = array[i - 1] - array[i + 1];
|
|
|
+ else
|
|
|
+ result -= array[i + 1];
|
|
|
+ }
|
|
|
+ if(array[i] === "*"){
|
|
|
+ if(i === 1)
|
|
|
+ result = array[i - 1] * array[i + 1];
|
|
|
+ else
|
|
|
+ result *= array[i + 1];
|
|
|
+ }
|
|
|
+ if(array[i] === "/"){
|
|
|
+ if(i === 1)
|
|
|
+ result = array[i - 1] / array[i + 1];
|
|
|
+ else
|
|
|
+ result /= array[i + 1];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log(array);
|
|
|
+ return result;
|
|
|
+
|
|
|
+}
|
|
|
+var result = eval(userVar);
|
|
|
+
|
|
|
+console.log(result);
|
|
|
+```
|