실제 개발에서는 기본적으로 객체지향적입니다. 일반적으로 면접관이 질문을 할 때 첫 번째는 논리를 테스트하고 두 번째는 프로그래밍에 대한 이해를 테스트합니다.객체 지향 프로그래밍은 개발 효율성을 향상시키고 개발주기를 단축할 수 있습니다.
, 여기서는 두 가지 간단한 예를 들어보겠습니다. 객체지향적 사고는 매우 중요합니다. . . 매우 중요. . . . 매우 중요
1. 주어진 배열에서 배열의 각 요소가 나타나는 횟수를 찾아 작은 것에서 큰 것, 큰 것에서 작은 것으로 정렬합니다.
// /* 统计数组中数据出现的次数,并大到小、小到大排序*/
let arr = [1, 4, 2, 1, 3, 2, 1, 4]
// 2. 定义一个对象
const obj = {}
// 1. 遍历
arr.forEach(item => {
// 判断出现了谁,次数+1
if (obj[item]) {
obj[item] += 1
} else {
obj[item] = 1
}
})
console.log(obj);
// 排序不单独写了,把下面字符串的排序写出来,数组的自然就会了
2. 주어진 문자열에서 각 문자의 발생 횟수를 찾아 큰 것에서 작은 것, 작은 것에서 큰 것으로 정렬합니다.
//统计字符串中每个字符出现的次数,然后排序
const str = 'lkasjglkjasdlkgjaodgiaposdkafpk'
const obj = {}
for(let i = 0; i < str.length; i++){
if(obj[str[i]]){
obj[str[i]] += 1
}else {
obj[str[i]] = 1
}
}
console.log(obj);
//排序(下面这个是面向过程)
//把obj先转换为数组,然后把里面的每个 键值对 进行排序
const arr = []
for (let key in obj) {
let temp = {}
// temp[key] = obj[key]
temp.chart = key
temp.times = obj[key]
arr.push(temp)
}
//console.log(arr);
arr.sort((a, b) => {
return b.times - a.times
})
//console.log(arr);
arr.forEach(e => console.log(`字符${e.chart}出现了${e.times}次`))
//简化1(面向对象)
const arr = []
const keys = Object.keys(obj)
const values = Object.values(obj)
//console.log(keys);
//console.log(values);
keys.forEach((item,index)=>{
arr.push({chart:item,times:values[index]})
})
arr.sort
//简化2(面向对象)
const values = Object.values(obj)
Object.keys(obj).map((item,index)=>{
return {chart:item,times:values[index]}
}).sort()
//简化3(面向对象)
const arr = Object.keys(obj).map(item=>{
return {chart:item,times:obj[item]}
}).sort((a,b)=>a.times - b.times)
console.log(arr);
누구나 토론을 환영합니다. . .