精华内容
下载资源
问答
  • nodejs 数组操作

    千次阅读 2020-08-03 19:22:31
    数组操作 map 通过指定函数处理数组的每个元素,并返回处理后的数组。 map() 方法会将数组中元素依次传入方法中,并将方法的返回结果组成新数组返回。 传入的function可以有自己的三个形参,currentValue, index,arr...

    数组操作

    map

    通过指定函数处理数组的每个元素,并返回处理后的数组。
    map() 方法会将数组中元素依次传入方法中,并将方法的返回结果组成新数组返回。

    传入的function可以有自己的三个形参,currentValue, index,arr分别代表当前元素,元素索引,元素所属数组对象;其中currentValue是必须的。

    注意:map不会改变原数组,map不会检查空数组

    filter

    filter用于对数组进行过滤。
    参数同map
    它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素.
    注意:filter()不会对空数组进行检测、不会改变原始数组

    every

    every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
    参数同map
    every() 方法使用指定函数检测数组中的所有元素:

    • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
      如果所有元素都满足条件,则返回 true。

    注意: every() 不会对空数组进行检测。
    注意: every() 不会改变原始数组。

    some

    some 和every 正好相反:
    参数同map

    some方法会依次执行数组的每个元素;

    • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测
      如果没有满足条件的元素,则返回false

    includes

    includes() 的参数和上面几个有区别,它可以作为辅助函数判断数组中是否包含某个元素。
    includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。

    sort

    sort() 方法用于对数组的元素进行排序。
    注释:该方法会改变原始数组。

    arrayObject.sort(sortby)

    var arr = [10,5,1000,25,1];
    
    console.log(`arr:\n${arr}`);
    //sort 在原数组的上修改顺序
    
    console.log(`after sort arr1:\n${arr.sort()}`);  //1,10,1000,25,5
    
    console.log(`after sort arr2:\n${arr.sort((a,b)=>{return a-b})}`);  //a-b 升序  1,5,10,25,1000
    
    console.log(`after sort arr3:\n${arr.sort((a,b)=>{return b-a})}`);  //b-a 降序 1000,25,10,5,1
    
    

    splice

    splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
    注释:该方法会改变原始数组。

    arrayObject.splice(index,howmany,item1,…,itemX)

    • index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
    • howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
    • item1, …, itemX 可选。向数组添加的新项目。
    var arr = [1, 2, 3, 4, 5, 6];
    arr.splice(2, 3); // [3, 4, 5]   删除第三个元素以后的三个数组元素
     
    arr.splice(2, 0, 7, 8);  // []   在第三个元素之前插入7和8
    arr; // [1, 2, 7, 8, 9]
     
    arr.splice(2, 3, 9, 10);  // [7, 8, 9]  删除第三个元素以后的三个数组元素,并用9和10代替
    arr;  // [1, 2, 9, 10]
    
    

    indexOf

    可返回某个指定的字符串值在字符串中首次出现的位置。

    stringObject.indexOf(searchvalue,fromindex)

    • searchvalue 必需。规定需检索的字符串值。
    • fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。

    注释:indexOf() 方法对大小写敏感!
    注释:如果要检索的字符串值没有出现,则该方法返回 -1。

    类似的函数

    ** lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。**

    join

    join() 方法用于把数组中的所有元素放入一个字符串。

    元素是通过指定的分隔符进行分隔的。

    arrayObject.join(separator)

    • separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

    concat

    concat() 方法用于连接两个或多个数组。

    • 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
    arrayObject.concat(arrayX,arrayX,......,arrayX)
    

    Object.entries Object.values

    Object.entries()将一个对象中可枚举属性的键名和键值按照二维数组的方式返回,如果对象是数组,则会将数组的下标作为键值返回.
    ES6中的 Object.keys() 返回的是键名,而 Object.values 则返回给定对象自己的所有可枚举属性值的数组,数组顺序,跟Object.entries()保持一致

    Object.entries({ one: 1, two: 2 })    //[['one', 1], ['two', 2]]
    Object.entries([1, 2])                //[['0', 1], ['1', 2]]
    
    // === 若是键名是Symbol,编译时会被自动忽略 ====
    Object.entries({[Symbol()]:1, two: 2})  //[['two', 2]]
    
    // ==== entries()返回的数组顺序和for循环一样,即如果对象的key值是数字,则返回值会对key值进行排序====
    Object.entries({ 3: 'a', 4: 'b', 1: 'c' })    //[['1', 'c'], ['3', 'a'], ['4', 'b']]
    
    // === 利用Object.entries()创建一个真正的Map ===
    var obj = { foo: 'bar', baz: 42 };
    
    var map1 = new Map([['foo', 'bar'], ['baz', 42]]); //原本的创建方式
    var map2 = new Map(Object.entries(obj));    //等同于map1
    
    console.log(map1);// Map { foo: "bar", baz: 42 }
    console.log(map2);// Map { foo: "bar", baz: 42 }
    
    // === Object.keys() ===
    Object.keys({ one: 1, two: 2 })  // ["one", "two"]
    Object.keys({ 3: 'a', 4: 'b', 1: 'c' })  //  ["1", "3", "4"]
    
    // === Object.values ===
    Object.values({ one: 1, two: 2 })            //[1, 2]
    Object.values({ 3: 'a', 4: 'b', 1: 'c' })    //['c', 'a', 'b']
    
    

    应用

    对象遍历

    const users = {
        "5979942": {
            "uid": 5979942,
            "uname": "用户5979942",
            "ugender": 2
        },
        "5979945": {
            "uid": 5979945,
            "uname": "用户5979945",
            "ugender": 1
        },
        "5979946": {
            "uid": 5979946,
            "uname": "用户5979946",
            "ugender": 1
        }
    }
    
    console.log(`user:${JSON.stringify(users)}`);
    
    //遍历方法1
    console.log(`遍历方法1`);
    for(let i in users){
        console.log(`i:${i},users[i]:${JSON.stringify(users[i])}`);
    }
    
    console.log(`遍历方法2`);
    // 遍历方法2
    Object.keys(users).map(v=>{console.log(`v:${v},info:${JSON.stringify(users[v])}`)})
    
    

    在这里插入图片描述

    数组应用

    const actions = [
        {
            "uid": 5979946,
            "act": -1,
            "rate": 1,
            "time": 1596078572373,
            "delegated": false
        },
        {
            "uid": 5979942,
            "act": -1,
            "rate": 1,
            "time": 1596078575235,
            "delegated": false
        },
        {
            "uid": 5979945,
            "act": 1,
            "rate": 2,
            "time": 1596078578154,
            "delegated": false
        },
        {
            "uid": 5979945,
            "act": 3,
            "cards": [
                777,
                265,
                1033,
                515
            ],
            "rate": 2,
            "time": 1596078583879,
            "delegated": false
        }
    ]
    
    console.log(`map:...................`)
    actions.map( (v,i)=>{console.log(`i:${i},v:${JSON.stringify(v)}`)});
    
    console.log(`filter:...................`)
    let act1 = actions.filter((v,i)=>{return v.act > 0;})
    console.log(`act1:${JSON.stringify(act1)}`);
    
    console.log(`some:...................`)
    let result = actions.some((v)=>{return v.act > 0})
    console.log(`result:${result}`);
    
    console.log(`every:...................`)
    let result1 = actions.every((v)=>{return v.act > 0})
    console.log(`result1:${result1}`);
    
    

    在这里插入图片描述

    数组差

    
    let cards = [
        1035,
        270,
        779,
        526,
        1038,
        267,
        1033,
        772,
        1280,
        518,
        263,
        1037,
        1028,
        776,
        1036,
        782,
        780,
        265,
        777,
        515
    ];
    
    const topCards =  [
        265,
        777,
        515
    ];
    
    
    // 找到cards 中> 1000 的所有
    let arr1 = cards.filter((value,index)=>{return value>1000});
    console.log(`arr1:${arr1}`);
    
    // 从cards 中删除topCards 的值
    cards = cards.filter(v=>{return !topCards.includes(v)});
    console.log(`cards:${cards}`)
    
    

    在这里插入图片描述

    展开全文
  • 【js】关于循环给数组赋值的坑

    千次阅读 2020-05-12 11:22:32
    正确 错误

    正确

    在这里插入图片描述
    在这里插入图片描述

    错误

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 如代码所示,在函数init_list函数中,对新节点中name数组初始化并赋值“hello”,打印发现如下图所示: 问题原因与解决方法: 调用strcpy函数将需要初始化的内容赋值给name:strcpy(node->info_name ,...
    #include<stdio.h>
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include "string.h"
    #include <stdlib.h>
    
    typedef struct list{
        char info_name[128];
        int  num;
        struct list *pre;
        struct list *node;
        struct list *next;
    }info_list;
    
    
     /* 1.初始化线性表,即置单链表的表头指针为空 */
    static info_list* init_list(void){
        info_list* node;
        char buff[128] = "hello";
        
        node = (info_list*)malloc(sizeof(info_list)); 
        //node->info_name[0] = buff[0];
        node->info_name = "hello";                      //------->[ 问题点 ]
        node->pre = NULL;
        node->node = NULL;
        node->next = NULL;
    
        return node;
    }
    
    int main()
    {
        char buff[128] = "hello";
        info_list* my_list;
        my_list = (info_list*)init_list();
        printf("--------------------------------\n");
        printf("buff[0] : %c \n",my_list->info_name[0]);
        printf("buff[1] : %c \n",my_list->info_name[1]);
        printf("buff[2] : %c \n",my_list->info_name[2]);
        printf("buff[3] : %c \n",&my_list->info_name[3]);
        printf("buff[4] : %c \n",&my_list->info_name[4]);
    
        printf("--------------------------------\n");
        printf("buff[0] : %c \n",buff[0]);
        printf("buff[1] : %c \n",buff[1]);
        printf("buff[2] : %c \n",buff[2]);
        printf("buff[3] : %c \n",buff[3]);
        printf("buff[4] : %c \n",buff[4]);
        return 0;
    }
    

    如代码所示,在函数init_list函数中,对新节点中name数组初始化并赋值“hello”,打印发现如下图所示:

    问题原因与解决方法:

    调用strcpy函数将需要初始化的内容赋值给name:strcpy(node->info_name ,“hello”);

    https://zhidao.baidu.com/question/1175926789213297099.html

    展开全文
  • vue(一)nodejs操作数组

    千次阅读 2018-11-29 10:53:24
    常见方法,其中filter和map会改变数组 let array=[1,2,3,4,5]; // for (let index = 0; index &lt; array.length; index++) { // const element = array[index]; // console.log(element); // } // 1)let val...

    常见方法,其中filter和map会改变数组

    let array=[1,2,3,4,5];
    // for (let index = 0; index < array.length; index++) {
    //   const element = array[index];
    //   console.log(element);
    // }
    
    // 1)let val of obj  遍历
    // let obj={name:'huang',age:24};
    // for(let val of Object.keys(obj)){
    //   console.log(obj[val])
    // }
    
    // 2)filter 过滤
    // let arr=array.filter(function(item){
    //   return item>2&&item<5;
    // })
    // console.log(arr);
    
    // 3)map 映射
    // let arr = array.map(function(item){
    //   // return item*3;
    //   return `<li>${item}</li>`;    //``是ESC下的那个键
    // })
    // console.log(arr);
    // console.log(arr.join(''));
    
    // 4)includes查找元素,返回ture or false
    // console.log(array.includes(5));  
    // console.log(array.includes(55));
    
    // 5)find返回找到的那一项,不会改变数组,找不到返回undefined
    // let result = array.find(function(item,index){ 
    //   // return item.toString().indexOf(4123)>-1;
    //   return item.toString().indexOf(4)>-1;
    // });
    // console.log(result);
    
    //6)some  找true  找到true后停止,返回true ,找不到返回false
    //7)every 找false 找到false后停止,返回false
    // let result = array.some(function(item,index){ 
    //   // return item.toString().indexOf(4123)>-1;
    //   return item.toString().indexOf(4)>-1;
    // });
    // console.log(result);
    
    //8)reduce 返回的是叠加后的结果,原数组不发生变化
    // 第一次循环prev代表数组的第一项,next是数组的第二项
    // 第二次循环prev是undefined,next是数组的第三项
    // let sum=array.reduce(function(prev,next,index,item){
    //   // console.log(arguments);
    //   console.log(prev,next);
    //   return prev+next; //本次的返回值会作为下一次的prev
    // })
    // console.log('数组求和为:'+sum);
    
    // let array2 = [{price:30,count:2},{price:30,count:3},{price:30,count:4}]
    // let sum2 = array2.reduce(function(prev,next){
    //   return prev+next.price*next.count;
    // },0); //默认指定第一次的prev
    // console.log(sum2);
    
    // let array3=[[1,2,3],[4,5,6],[7,8,9]];
    // let flat=array3.reduce(function(prev,next){
    //   return prev.concat(next);
    // });
    // console.log(flat);

     

    展开全文
  • nodejs 中 ajax 传值问题最近在做一个资讯类的网站打算使用 layui+nodejs+mongodb 去实现这个网站nodejs 不用多说,各种模块,各种包,随取随用mongodb 比 mysql 简单,而且不用去设置类型,长度,可以节约大量开发...
  • 一、变量部分 nodejs实例 let aaa = 1; let bbb = aaa; bbb++; return console.log(aaa); // 1 php实例 $aaa = 1; $bbb = $aaa;...二、数组部分 nodejs实例 let aaa = ['a']; let bbb = aaa; bbb.push('b'...
  • <!...</head> <body> <script> let a... //forEach只能操作一个数组 当循环出来是个对象的时候 就可以直接添加 了 //最终效果: b = [ { formid: 1, name: 'xx' }, { formid: 2, name: 'xx' } ] </script> </body> </html>
  • 1.数组的结构赋值 2.对象的解构赋值 3.扩展方法 ------------------------------------暂时性死区:没有赋值先使用了 再赋值 不行!------------------------------------ 1.数组的解构赋值 let [x,y.z] = [1,2...
  • Nodejs笔记--解构及数组对象操作

    千次阅读 2019-07-10 16:10:52
    引入处理函数处理数组中每一个元素,此处理函数返回true的元素保留,否则该元素被过滤掉,保留的元素构成新的数组返回 foreach 迭代所有元素,无返回值 const arr = [ 1 , 2 , 3 , 4 , 5 ...
  • nodejs

    2021-03-25 09:51:06
    nodejs基于谷歌V8引擎,运行在服务器端的语言,基于JS nodejs.org——英文官网; nodejs.cn——中文网 对比JS和nodejs JavaScript:1.客户端技术,运行于浏览器中; 2.有多种解释器可以使用,如IE的Chakra,FF的猴子...
  • 简单对象 和 数组的结构赋值 如果解构不成功,变量的值就等于undefined 对象 var { foo, bar } = { foo: "aaa", bar: "bbb" }; foo // "aaa" bar // "bbb" 对象的属性没有次序,变量必须与属性同名,才能取到...
  • 上送的json如下: var test1 ={ "ENNAME": "text", ...但是我想要的是DDINFO里面json数组的长度,以便我取出数据给表赋值。急等解决! var Length = 0; for (var item in req.body) { Length++; }
  • nodejs获取了查询结果,但不能返回出去, 情形如下: var query = function (path,id,param,sqlWhere,res){ var aa = 111;var sql = "select * from user"; var mysql = dbHelper.getMysql(); ...
  • 按照某种模式,从数组和对象中提取值,对变量进行赋值这被称为解构。 数组的解构赋值 //1.左右对等 左侧对变量进行了声明 右侧是一个标准的数据类型(数组) var [a, b, c] = [1, 2, 3]; ​ console.log(a...
  • nodejs简介

    万次阅读 多人点赞 2018-11-28 15:32:36
    nodejs ES6常用新语法 前言 是时候学点新的JS了! 为了在学习NodeJs之前,能及时用上语言的新特性,我们打算从一开始先学习一下JavaScript语言的最基本最常用新语法。本课程的内容,是已经假设你有过一些JavaScript...
  • Nodejs基础

    2021-02-15 10:03:24
    文章目录NodeJS基础1.什么是nodejs2.安装nodejs3.node环境和浏览器有什么不同3.1内置对象不同3.2this默认指向不同3.3API不同4.了解`global` 全局变量的属性和方法4.1 `__dirname`4.2 `__filename`4.3 `exports` 和`...
  • Nodejs初识

    千次阅读 2020-07-01 17:13:39
    什么是Nodejs [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-51z25rOL-1593594762501)(https://s1.ax1x.com/2020/07/01/N7pz24.png)] nodejs文件是以 .js 结尾的文件,下面是我编写的第一...
  • 1、创建数组 var array = new Array(); var array = new Array(size);//指定数组的长度 ...//创建数组赋值 2、取值、赋值 var item = array[index];//获取指定元素的值 array[index] = value;//为指
  • nodejs笔记

    2020-08-11 21:17:43
    nodejs-http模板 打node-http-server可导入下面的HTTP模板 //引入http模块 var http = require('http'); //创建web服务 //request获取url传来的信息,response给浏览器返回的信息 http.createServer(function ...
  • NodeJS入门

    2019-07-13 11:36:35
    一、NodeJS简介 Node.js是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境。 Node采用Google开发的V8引擎运行js代码,使用事件驱动、非阻塞和异步I/O模型等技术来提高性能,可优化应用...
  • NodeJS学习

    千次阅读 2018-01-03 22:16:35
    一、Node.js概述:Node.js官网:www.nodejs.org 1.Node.js是基于C++编写的基于V8引擎的javascript运行时环境。 2.Node.js是一门基于ECMAScript开发的服务器端语言,提供了(前端js 没有的)很多扩展对象。 前端js:...
  • js数组操作

    2018-09-27 19:24:37
    声明数组: /* 数组: 1、数组内可以存放任意类型的... 2、数组元素不赋值,则为undefined 3、打印数组时,如果某个元素没有赋值,则为“” 4、访问数组范围以外的元素时,不会出现越界异常,为undefi...
  • 基本数据类型 1:整数; 2:小数; 3:逻辑变量; ...后续使用Visual Studio Code...2: = 给变量赋值; 3: var 定义在哪里,这个变量的作用范围在哪里; 4: var 变量在运行的时候存的是什么就是什么; 5: console.log...
  • NodeJS初探

    2021-05-28 15:44:44
    运行 运行方式: > node .\test.js 模块 CommonJS是模块化的标准,NodeJS是CommonJS的实现。 在Node中,一个JS文件就是一个模块。 模块分为“核心模块”和“文件模块”两大类: 核心模块:由node引擎提供的模块 文件...
  • Nodejs核心模块

    2019-08-22 16:06:51
    (1)全局对象 在浏览器JS中,通常window是全局对象,而nodejs中的全局对象是global,所有全局变量都是global对象的属性。 在nodejs中能够直接访问到的对象通常都是global的属性,...隐式定义的变量(未定义直接赋值的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,004
精华内容 2,401
关键字:

nodejs数组赋值