跳到主要内容

20 篇博文 含有标签「JavaScript常用API」

查看所有标签

需求

  • 输入一个二叉树的数组,函数能够生成对应的二叉树的结构

代码

const deserialize = (data) => {

let res = ''
for (let v of data) {
res = res + v + ',';
}
for (let i = 0; i <= data.length; i++) {
res = res + 'null' + ','
}
data = res;

function TreeNode(val) {
this.val = val;
this.left = null;
this.right = null;
}
if (data.length === 0) return null;
const list = data.split(','); // split成数组
list.splice(list.length - 1);
let list_Pointer = 1;
let queue_pointer = 0;
const root = new TreeNode(list[0])
let queue = [root];

while (list_Pointer !== list.length) {
if (queue[0] === null) {
queue.shift();
queue_pointer++;
continue;
}
if (queue_pointer === list_Pointer) {
list_Pointer = list_Pointer + 2;
}
if (list[list_Pointer] === 'null') {
queue[0].left = null;
} else {
queue[0].left = new TreeNode(list[list_Pointer]);
}
if (list[list_Pointer + 1] === 'null') {
queue[0].right = null;
} else {
queue[0].right = new TreeNode(list[list_Pointer + 1]);
}
queue.push(queue[0].left);
queue.push(queue[0].right);
queue.shift();
queue_pointer++
list_Pointer = list_Pointer + 2;
}
return root
};

const test2 = deserialize([1,2,3,4]);

注意事项

这里的二叉树的每一个节点的val值不是Number类型的,而是字符串类型的


JavaScript常用API阅读需 1 分钟

灵活使用toUpperCase和toLowerCase

注意修改的是字面量还是变量

function titleCase(str) {
const result = str.split(' ');
for (let i in result) {
result[i] = result[i][0].toUpperCase() + result[i].slice(1,result[i].length).toLowerCase();
}
result
const test = result.reduce((pre,value) => {
return pre + ' ' + value;
})

return test;
}

console.log(titleCase("sHoRt AnD sToUt"));


JavaScript常用API阅读需 1 分钟

filter方法的应用场景

  • filter方法和map方法的区别是:map方法返回的数组的元素数和原数组的元素数是一样的,但是filter会修改元素数

JavaScript常用API阅读需 1 分钟