4.最全面的数组对象属性介绍(分类一目了然)

  1 /**
  2  *  数组对象的属性:
  3  * */ 
  4 
  5 // 1.concat()  链接两个或者更多数组(返回链接后的数组,不改变原数组)
  6 var arr = [1,2,3]
  7 var arr1 = [4,5,6]
  8 var temp = arr.concat(arr1)
  9 console.log(temp)
 10 console.log(arr)
 11 console.log(arr1)
 12 
 13 // 2.copyWithin() 从数组的指定位置拷贝元素到另一个指定位置 (返回调整位置后的新数组,并且原数组被改变)
 14 // 第一个参数代表复制到指定目标位置
 15 // 第二个参数代表复制的起始位置
 16 var arr = [1,2,3]
 17 var t = arr.copyWithin(2,0)
 18 console.log(t)
 19 console.log(arr) 
 20 
 21 
 22 // 3.every(function)  检测数值元素的每一个元素是否都符合条件,接收一个函数作为参数 (不会改变原始数组)
 23 // 只要有一个不满足就会返回false,剩余元素不会检测
 24 // 所有元素都满足条件,则会返回false
 25 
 26 var arr = [1,2,3]
 27 var test = (age) => {
 28   console.log(age)
 29   return age > 0
 30 }
 31 var suc = arr.every(test)
 32 console.log(suc)
 33 
 34 
 35 // 3.1 some(function) 方法用于检测数组中的元素是否满足指定条件(函数提供)。
 36 // some() 方法会依次执行数组的每个元素:
 37 // 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
 38 // 如果没有满足条件的元素,则返回false。
 39 
 40 /**
 41  *  some()和every()和find()区别:
 42  *    1.every()检测的时候,只要检测到一个不满足条件的元素,就会返回false,后面的元素不再进行检测
 43  *    2.some() 检测的时候,只有有一个元素,满足条件,就会返回true,后面的元素将不再进行检测
 44  *    3.find() 检测的时候,当表达式返回true的时候,find()会返回满足条件的第一个元素,如果没有找到会返回undefined
 45  *    4.filter() 检测的时候,会返回所有满足条件的所有元素,(以数组的形式返回)
 46  *  some()和every()共同点:
 47  *    1.对于空数组,都不会进行检测
 48  *    2.都不会改变原数组
 49  * */ 
 50 
 51 
 52 // 4.1 filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
 53 var  arr = [1,2,3,4]
 54 var x = arr.filter((age) => {
 55   return age > 2
 56 })
 57 console.log(x)
 58 console.log(arr)
 59 
 60 
 61 // 4.fill(arg)  使用一个固定值来填充数组 (会将原数组中的所有元素替换成指定值)  返回一个新的数组,并且原数组被改变
 62 
 63 var arr = [1,2,3]
 64 var t = arr.fill('oo')
 65 console.log(t)
 66 console.log(arr)
 67 
 68 // 5.find(function)   用来查找符合条件的元素,返回查询到的结果如果没有找到返回undefined (以函数所谓参数传入)
 69 
 70 var arr = [1,2,3]
 71 var test1 = (age) => {
 72   return age > 0
 73 }
 74 var test2 = (age) => {
 75   return age > 3
 76 }
 77 console.log(arr.find(test1))
 78 console.log(arr.find(test2))
 79 
 80 
 81 // 6.finedIndex() 和find类似,不过find返回的元素,findIndex返回的是该元素的索引 (如果没有找到就返回-1)
 82 
 83 var arr = [1,2,3]
 84 var test1 = (age) => {
 85   return age > 2
 86 }
 87 var test2 = (age) => {
 88   return age > 3
 89 }
 90 console.log(arr.findIndex(test1))
 91 console.log(arr.findIndex(test2))
 92 
 93 // 7.forEach(callback(value, index, arr)) 用来遍历数组,数组中的每一个元素都会执行一遍回调函数,回调函数接收三个参数,分别为数组的元素,索引,和数组本身
 94 
 95 var arr = [1,2,3]
 96 var temp = arr.forEach((value, index, input) => {
 97   console.log(`${value}+${index}+${arr}`)
 98   input[index] = value*10
 99 })
100 console.log(temp)
101 console.log(arr) // 原数组被改变
102 
103 // 9.indexOf(arg) 用来查找数组中指定元素的位置(返回该元素的索引,如果没有找到返回-1)(从第一个元素开始查找)
104 
105 var arr = [1,2,3]
106 console.log(arr.indexOf(1))
107 console.log(arr.indexOf(0))
108 
109 // 10.lastIndexOf() 与indexOf()功能一样,不过lastIndexOf()是从数组的最后一个元素向前查找的
110 
111 // 11.map()也是遍历数组,他与forEach()的区别是,map会返回一个新的数组,不改变原数组,forEach会改变原数组
112 // map()中回调函数也有三个参数,和forEach类似,只是顺序不同,map回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身
113 
114 var arr = [1,2,3]
115 var x = arr.map((value,index,input) => {
116   console.log(`${value}+${index}+${input}`)
117   return value*10
118 })
119 console.log(x)
120 console.log(arr)
121 
122 // 12.pop()删除数组的最后一个元素,返回被删除的元素
123 
124 var arr= [1,2,3]
125 var x = arr.pop() // 返回被删除的元素
126 console.log(x)
127 console.log(arr) // 原数组被改变
128 
129 // 13.shift() 删除数组的第一个元素,返回被删除的元素,改变原数组
130 
131 var arr = [1,2,3]
132 var  x = arr.shift()
133 console.log(x)
134 console.log(arr)
135 
136 // 14.push() 在数组的最后添加一个, 返回更新后的新数组,并且原数组也被改变
137 var arr = [1,2,3]
138 var x = arr.push(4)
139 console.log(x)
140 console.log(arr)
141 
142 // 15.unshift() 在数组的最前面添加一个元素(返回更新后的数组,并且原数组也被改变),他和push的区别在于,一个是前一个后
143 var arr = [1,2,3]
144 var x = arr.unshift(4)
145 console.log(x)
146 console.log(arr)
147 
148 // 16.reverse() 用于翻转数组(返回被翻转后的数组,并且改变原来的数组)
149 var arr = [1,2,3]
150 var x = arr.reverse()
151 console.log(x)
152 console.log(arr)
153 
154 // 17.sort() 用于数组排序 (返回更新后的数组,改变原数组)
155 
156 // (1).默认,如果是数字就是按升序排列,如果是字符串就按字典顺序排列
157 
158 // 数字:
159 var arr = [2,1,3]
160 var x = arr.sort()
161 console.log(x)
162 console.log(arr)
163 
164 // 字符串:
165 var arr = ['sde', 'dd', 'mm', 'aa']
166 var x = arr.sort()
167 console.log(x)
168 console.log(arr)
169 
170 // (2).接收一个函数,作为排序的条件
171 
172 var arr = [3,4,25,2]
173 // // 升序
174 // var x = arr.sort((a,b) => {return a-b})
175 // // 降序
176 var x = arr.sort((a,b) => {return b-a})
177 console.log(x)
178 console.log(arr) 
179 
180 
181 // 18.slice(),选取数组中的一部分,并返回一个新数组(不改变原数组)
182 
183 // (1).一个参数的时候表示从第几个元素开始,然后到数组的最末未结束
184 var arr = [1,2,3,4,5]
185 var x = arr.slice(2)
186 console.log(x)
187 console.log(arr)
188 
189 // (2).两个参数的时候表示要截取元素的范围 (第一个参数表示开始,第二个参数表示结束,注意:如果结束的参数大于开始的参数,返回一个空数组) 不改变原始数组
190 var arr = [1,2,3,4,5]
191 var x = arr.slice(0,2)
192 console.log(x)
193 console.log(arr)
194 
195 
196 // 19.splice() 从数组中添加或者删除元素 (原数组会被改变)
197 
198 var arr = [1,2,3,4]
199 var x = arr.splice(0,1,3,4)
200 console.log(x) // 返回被删除的元素(以数组的形式返回)
201 console.log(arr) // 原数组被改变了
202 
203 
204 
205 // 20.toString() 将数组转化为字符串,并返回结果 (不改变原数组)
206 var arr = [1,2,3,4]
207 var x = arr.toString()
208 console.log(x) // 返回转换后的结果
209 console.log(arr) // 原数组不被改变
210 
211 
212 // 22.valueOf() // 不改变原数组
213 var arr = [1,2,3,4]
214 var x = arr.valueOf()
215 console.log(x) // 返回数组的原始值
216 console.log(arr) 
217 
218 
219 //23.reduce() 将数组元素计算为一个值(从左到右),接收一个处理数组元素的函数作为参数
220 // 不改变原数组
221 
222 var arr = [1,2,3,4]
223 var x = arr.reduce((total, num) => {
224   // total 表示计算的初始值
225   // num 表示当前元素
226   console.log(total, num)
227   return total + num
228 })
229 console.log(x)
230 console.log(arr)
231 
232 // 24.reduceRight() 将数组元素计算为一个值(从右到左)接收一个处理数组元素的函数作为参数
233 // 不改变原数组
234 
235 var arr = [1,2,3,4]
236 var x = arr.reduceRight((total, num) => {
237   // total 表示计算的初始值
238   // num 表示当前元素
239   console.log(total, num)
240   return total + num
241 })
242 console.log(x)
243 
244 
245 // 26.join() 将数组转换为数组,不改变原数组
246 
247 var arr = [1,2,3,4]
248 var x = arr.join()
249 console.log(x)
250 console.log(arr)
251 
252 
253 /**
254  *  改变原始数组的操作:
255  *  1.unshift()
256  *  2.push()
257  *  3.shift()
258  *  4.pop()
259  *  5.fill() 
260  *  6.reverse()
261  *  7.sort()
262  *  8.slice()
263  *  9.splice()
264  *  10copyWithin()
265  *  数组属性的分类总结:
266  * 
267  * 一:元素检测:(不改变原数组)
268  *  1.find()
269  *  2.every()
270  *  3.some()
271  *  4.filter()
272  * 
273  * 二:元素查找:(不改变原始数组)
274  *  1.indexOf()
275  *  2.lastIindexOf()
276  * 
277  * 三:元素操作:
278  *  增加:(改变原始数组)
279  *    1.unshift() (从头添加)
280  *    2.push()    (从尾添加)
281  *  删除:(改变原始数组)
282  *    1.shift()   (从头删除)
283  *    2.pop()     (从尾删除)
284  *  计算:(接收一个函数作为计算方式,最终返回结算的结果) (不改变原始数组)
285  *    1.reduce() 
286  *    2.reduceRight()
287  *  填充:(改变原始数组)
288  *    1.fill()
289  * 
290  * 四:遍历元素:
291  *   1.forEach()
292  *   2.map()
293  * 
294  * 
295  * 五:数组排序:(改变原始数组)
296  *  1.reverse()
297  *  2.sort()
298  * 
299  * 
300  * 六:数组转字符串:(不改变原始数组)
301  *  1.join()
302  *  2.toString()
303  * 
304  * 
305  * 七:截取数组元素:(改变原始数组)
306  *  1.slice()
307  * 
308  * 八:数组的添加/删除 (改变原始数组)
309  *  1.splice()
310  * 
311  * 
312  * 九:数组的连接 (不改变原始数组)
313  *  1.concat()
314  * 
315  * 
316  * 十:拷贝指定元素到指定位置
317  *  1.copyWithin()(改变原始数组)
318  * */ 

 

posted @ 2017-10-13 12:56  豆浆油条123  阅读(700)  评论(0)    收藏  举报