js算法的重要性
在前端的工作中,js是非常非常重要的,基本上的逻辑部分,都需要js作为支撑。
最近工作遇到了一个对象之间的比对。如下:
对象1:{"尺码":"L","颜色":"红色"}
对象2:{"颜色":["红色":"图片地址"],"尺码":["L"]}
比对两个对象,如果对象1中的属性值在对象2中有图片地址,则需要拿出来。
let obj1 = {“尺码”:“L”,“颜色”:“红色”};
let obj2 = {“颜色”:[{“红色”:“图片地址”}],“尺码”:“L”}
很明显,是需要对象的遍历的,建议使用for in 循环,for in 循环中的key是属性名,可以通过obj[key]的方式获取属性值。
对于obj2来说,是对象中嵌套数组,数组的循环建议使用for循环。而且我们想要的是图片地址,如果没有图片地址,则对象的属性值是字符串,而非数组,所以此时还需要进行数据类型的判断。
下面依次进行处理:
for (let key in obj2) {
for (let i = 0; i < obj2[key].length; i++) {
if (typeof obj2[key][i] !== "string") {
const imgSku = obj2[key][i];
for (let imgSkuKey in imgSku) {
for (let item in obj1) {
if (obj1[item] === imgSkuKey) {
img = imgSku[imgSkuKey];
}
}
}
}
}
}