9/10 javaScript数组游戏
来源:互联网 发布:如何在手机淘宝上卖东西 编辑:程序博客网 时间:2024/06/01 15:10
(1)我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。(最小的数字并非总在最前面。)
function sumAll(arr) { var a=Math.max.apply(null, arr); var b=Math.min.apply(null, arr); var c=[]; for(var i=0;b<a+1;i++) { c[i]=b; b++; } var sum = c.reduce(function (a, b){return a + b;}, 0); return sum;}sumAll([1, 4]);(2)比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。
function diff(arr1, arr2) { var newArr = []; var arr3 = []; for (var i=0;i<arr1.length;i++) { if(arr2.indexOf(arr1[i]) === -1) arr3.push(arr1[i]); } var arr4 = []; for (var j=0;j<arr2.length;j++) { if(arr1.indexOf(arr2[j]) === -1) arr4.push(arr2[j]); } newArr = arr3.concat(arr4); return newArr; }diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);
(3)写一个 function,它遍历一个对象数组(第一个参数)并返回一个包含相匹配的属性-值对(第二个参数)的所有对象的数组。如果返回的数组中包含 source 对象的属性-值对,那么此对象的每一个属性-值对都必须存在于 collection 的对象中。
function where(collection, source) { var arr = []; var a=0; var b=0; for(var i=0;i<collection.length;i++){ for(var j=0;j<Object.keys(source).length;j++){ if(collection[i].hasOwnProperty(Object.keys(source)[j])){ if(collection[i][Object.keys(source)[j]]!=source[Object.keys(source)[j]]){ a=1; } }else{ b=1; } } if(a==0&&b!=1){ arr.push(collection[i]); } a=0; b=0; } return arr;}where([{ "a": 1, "b": 2 }, { "a": 1 }, { "a": 1, "b": 2, "c": 2 }], { "a": 1, "c": 2 });以下是别人的代码:
function where(collection, source) { var arr = []; var arrSource=Object.keys(source);//把source的属性转化为数组 // What's in a name? var i='',j=0; for(i in collection){//循环collection的元素 var count=0; for(j=0;j<arrSource.length;j++){//针对source的属性进行循环,查找这个collection元素中是否有指定的source的属性 if(collection[i][arrSource[j]]&&source[arrSource[j]]==collection[i][arrSource[j]]){ count++; } } //判断:如果完全包含,这个collection的元素就被允许添加到里边。 if(count==arrSource.length){ arr.push(collection[i]); } } return arr;}感悟:(在此期间对象定义错误是很要命的)编程时首先要保证不出错,然后保证逻辑正确。建议用一种方法把对象都描述出来。
使用给定的参数对句子执行一次查找和替换,然后返回新句子。
第一个参数是将要对其执行查找和替换的句子。
第二个参数是将被替换掉的单词(替换前的单词)。
第三个参数用于替换第二个参数(替换后的单词)。
注意:替换时保持原单词的大小写。例如,如果你想用单词 "dog" 替换单词 "Book" ,你应该替换成 "Dog"。
function myReplace(str, before, after) { var c; if(/[A-Z]/.test(after[0])!=/[A-Z]/.test(before[0])){ if(/[A-Z]/.test(before[0])) {c=after.replace(after[0],after[0].toUpperCase());} else {c=after.replace(after[0],after[0].toLowerCase());} }else{ c=after;} var d=str.replace(before,c); return d;}myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");
阅读全文
0 0
- 9/10 javaScript数组游戏
- javascript 数组
- JavaScript 数组
- Javascript数组
- javascript数组
- JavaScript 数组
- JavaScript 数组
- javascript数组
- javascript 数组
- javascript数组
- javaScript 数组
- JavaScript数组
- javascript数组
- javascript 数组
- javascript数组
- javascript数组
- JavaScript数组
- javascript数组
- list集合取重复的几种方法
- ButterKnife注解使用
- python3 数据操作简单封装
- 如何避免数据库“勒索事件”和“从删库到跑路”的尴尬
- 阿里云centos7.03源码安装freeswitch
- 9/10 javaScript数组游戏
- 设计模式-单例模式
- java核心技术卷 之处理按钮点击事件
- 后台传输int型数据到jsp乱码的问题
- String中的intern方法
- 分库分表都有哪些实现[待编辑]
- 持续集成之代码质量管理-Sonar [三]
- 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
- android String文件中修改部分字体颜色