判断数组里面的元素是否相邻或者是全都间隔一位相邻
/**
* @description 判断数组里面的元素是否相邻或者是全都间隔一位相邻
* @param {Array} array 被判断的数组对象
* @param {Boolean} type true--判断相邻 false--判断间隔一位相邻
*/
export function isAdjoining(array, type) {
let flag = true
let temp = 0
for (let i = 0; i < array.length - 1; i++) {
temp = array[i]
if (parseInt(temp) + (type ? 1 : 2) != parseInt(array[i + 1])) flag = false
}
return flag
};
/**
* @description 判断是奇数偶数,并且返回 true(偶数) false(奇数)
* @param {Number} number 被判断的数字
*
*/
export function oddOrEven(number) {
return number % 2 == 0
};
使用方法:
showWeek(arr) {
let tempDesc = ""
if (isAdjoining(arr, true) && arr.length > 1) {
tempDesc = `${arr[0]}-${arr[arr.length - 1]}周`
} else if (isAdjoining(arr, false) && arr.length > 1) {
//判断是否全部间隔一相邻
tempDesc = `${arr[0]}-${arr[arr.length - 1]}${
oddOrEven(arr[0]) ? '双周' : '单周'
}`
} else {
let str = ''
arr.forEach(item => {
str += `${item}周,`
})
tempDesc = str.substring(0, str.length - 1)
}
return tempDesc
},