Array对象方法(六) flat/flatMap/forEach/join

137 阅读1分钟

javaScript Array数组对象flat/flatMap/forEach/join

flat:扁平数组,将数组中的数组内容放到外部数组当中

let arr = [1, 2, 3, [4, 5]];
console.log(arr.flat());
/**结果
[ 1, 2, 3, 4, 5 ]
 */
console.log(arr);
/**结果
[ 1, 2, 3, [ 4, 5 ] ]
*/

let arr1 = [1, 2, 3, [4, [5]], [[[[6]]]]];
console.log(arr1.flat(2));
/**结果
[ 1, 2, 3, 4, 5, [[6]] ]
*/
console.log(arr1.flat(Infinity));
/**结果
[ 1, 2, 3, 4, 5, 6 ]
*/

flatMap:以映射的方式,处理数组中的每一个值并返回对应的处理结果

let arr = [1, 2, 3, 8];
console.log(arr.flatMap(x => [x * 2 + 1]));
/* 结果
[ 3, 5, 7, 17 ]
*/

let strArr = ["hello world", "hey man, you are good"];
console.log(strArr.flatMap(x => x.split(" ")));
/* 结果
[ "hello", "world", "hey", "man,", "you", "are", "good" ]
*/

forEach:遍历并输出对应的数组内容,和for很像

let arr = [5, 4, 3, 1, 2, 6, 9];
arr.forEach(item => {
  console.log(item); // 依次输出 5, 4, 3, 1, 2, 6, 9
});
let arr1 = [
  {
    name: 'zg',
    age: 18
  },
  {
    name: 'kobe',
    age: 35
  },
  {
    name: 'lucy',
    age: 22
  },
];
arr1.forEach(item => {
  console.log(item);
  /* 依次输出
  {name: 'zg', age: 18}
  {name: 'kobe', age: 35}
  {name: 'lucy', age: 22}
  */
});

join:将数组连接起来,如果是对象的话,会直接将描述对象的内容进行连接。默认提供连接的字符是【,】

let arr = [5, 4, 3, "luck", 1, 2, "dog", 6, 9];
console.log(arr.join(''));// 543luck12dog69
console.log(arr.join());// 5,4,3,luck,1,2,dog,6,9
let arr1 = [
  {
    name: 'zg',
    age: 18
  },
  {
    name: 'kobe',
    age: 35
  },
  {
    name: 'lucy',
    age: 22
  },
];
console.log(arr1.join());
/**结果
[object Object],[object Object],[object Object]
*/