• 数据处理 小栗子


    1. 例如,如果第一个参数是 [{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }],第二个参数是 { last: "Capulet" },那么你必须从数组(第一个参数)返回其中的第三个对象,因为它包含了作为第二个参数传递的属性-值对。

     1 function where(collection, source) {
     2   var arr = [];
     3   collection.filter(function(ele){
     4     var flag = false;
     5     for(var inx in source) {
     6       if (ele.hasOwnProperty(inx) && ele[inx]==source[inx]){
     7         flag = true;
     8       } else if(ele.hasOwnProperty(inx) && ele[inx]!=source[inx]){
     9         flag = false;
    10       } else if(!ele.hasOwnProperty(inx)){
    11         flag = false;
    12       }
    13     }
    14     if(flag) {
    15       arr.push(ele);
    16     }
    17   });
    18   return arr;
    19 }
    20 
    21 where([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" , first: "Tybalt"});
    // 返回 [{ first: "Tybalt", last: "Capulet" }]

     2. 给一个正整数num,返回小于或等于num的斐波纳契奇数之和。

      斐波纳契数列中的前几个数字是 1、1、2、3、5 和 8,随后的每一个数字都是前两个数字之和。

      例如,sumFibs(4)应该返回 5,因为斐波纳契数列中所有小于4的奇数是 1、1、3。

     1 function sumFibs(num) {
     2    var arr = [1, 1, 2, 3, 5];
     3     // 奇数数组
     4     var odd = arr.filter(function(a) {
     5         var remainder = a % 2;
     6         return remainder > 0;
     7     });
     8     // 补充斐波纳契数
     9     if (num > odd.pop()) {
    10         var addNUm = 0;
    11         var flag = 1;
    12         for(var i = 0; i < flag; i++) {
    13             addNUm = arr[arr.length - 1] + arr[arr.length - 2];
    14             arr.push(addNUm);
    15             flag += 1;
    16             if (addNUm > num) {
    17                 console.log(i);
    18                 flag = 0;
    19             }
    20         }
    21         console.log(arr[arr.length-1]);
    22     }
    23     // 重新获取奇数数组
    24     odd = arr.filter(function(a) {
    25         var remainder = a % 2;
    26         return remainder > 0;
    27     });
    28     
    29     var result = odd.filter(function(a) {
    30         return a <= num;
    31     });
    32 
    33     var sum = 0;
    34     result.filter(function(a) {
    35         sum += a;
    36     });
    37     return sum;
    38 }
    39 
    40 sumFibs(5);

    3.  返回给定数字范围内的质数之和

     1 function sumPrimes(num) {
     2   
     3   var result = [];
     4   
     5   for(var i = 1; i <= num; i++) {
     6     if(i != 1) {
     7       var flag = true;
     8       for(var s = 2; s <= parseInt(i/2); s++) {
     9         if(i%s == 0){
    10           flag = false;
    11         }
    12       }
    13       if (flag) result = result.push(i);
    14     }
    15   }
    16   var sum = 0;
    17   result.filter(function(a){
    18     sum += a;
    19   });
    20   return sum;
    21 }
    22 
    23 sumPrimes(10);

    4.  穷举

     1 function getPermutation(arr) {
     2     if(arr.length == 1){
     3         return [arr]
     4     }
     5     var result = [];
     6     for (var s = 0; s < arr.length; s++) {
     7         var firstNum = arr[s];
     8         var clone = arr.slice(0);
     9         clone.splice(s,1);
    10         var childPermAlone = getPermutation(clone);
    11         for(var i = 0; i < childPermAlone.length; i++) {
    12             childPermAlone[i].unshift(firstNum);
    13         }
    14         result = result.concat(childPermAlone);
    15     }
    16    return result;
    17 }

    5.  sleep

    function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, milliSeconds));
    }
  • 相关阅读:
    elasticsearch之建议器Suggester
    elasticsearch,kibana之相关配置
    elasticsearch之分析过程
    elasticsearch之mappings
    elasticsearch for Mac OS
    项目精讲
    博客园项目开发流程
    Django之auth模块
    DJango中间件
    DJango之模板层
  • 原文地址:https://www.cnblogs.com/javencs/p/7513357.html
Copyright © 2020-2023  润新知