js:array数组相关的操作技巧

举报
彭世瑜 发表于 2022/05/13 00:44:37 2022/05/13
【摘要】 打乱数组顺序 /** * 打乱数组顺序 * @param {Array} array * @returns */ function array_shuffle(array) { let ...

打乱数组顺序

/**
 * 打乱数组顺序
 * @param {Array} array 
 * @returns 
 */
function array_shuffle(array) {
  let array_ = [...array];
  array_.sort(() => {
    return 0.5 - Math.random();
  });
  return array_;
}

let arr = ['a', 'b', 'c', 'd', 'e'];
console.log(array_shuffle(arr));
// [ 'b', 'c', 'd', 'a', 'e' ]


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

从数组中随机选择一个值

/**
 * 从数组中随机选择一个值
 * @param {Array} array
 * @returns
 */
function array_random(array) {
  return array[Math.floor(Math.random() * array.length)];
}

let arr = ['a', 'b', 'c', 'd', 'e'];
console.log(array_random(arr));
// d


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

删除数组重复的元素

/**
 * 删除数组重复的元素
 * @param {Array} array
 * @returns
 */
function array_unique(array) {
  return [...new Set(array)];
}

let arr = ['a', 'b', 'a', 'd', 'd'];
console.log(array_unique(arr));
// [ 'a', 'b', 'd' ]


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
/**
 * 过滤数组中值为 false 的值
 * @param {Array} array 
 * @returns 
 */
function array_filter_empty(array) {
    return array.filter(Boolean)
}

let arr = [0, 1 , null, undefined];

console.log(array_filter_empty(arr));
// [ 1 ]

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

清空数组

// 方式一:
let arr = [1, 2, 3];

arr.length = 0;

console.log(arr);
// []


// 方式二:
let arr = [1, 2, 3];

arr.splice(0, arr.length);

console.log(arr);
// []

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

反转字符串

/**
 * 反转字符串
 * @param {String} str 
 * @returns 
 */
function reverse_string(str) {
    return str.split("").reverse().join("");
}

let str = 'hello wordl';
console.log(reverse_string(str));
// ldrow olleh

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

参考
强推:20个值得收藏的ES6小技巧

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/124682035

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。