实现要求:
2个数组进行对比valList中有对应的list数组中age值就添加sort并且赋值为1,否则就给赋值为2。
//用了一个按钮,点击打印出list数据
<button @click="demo">for循环与indexOf的使用</button>
demo () {
var valList = [3, 2, 1, 12];
var list = [{ name: 'zhansan', age: 3 }, { name: 'lisi', age: 18 }, { name: 'wangwu', age: 12 }, { name: 'xiaohong', age: 5 }];
for (var i = 0; i < list.length; i++) {
//不存在则返回-1
if (valList.indexOf(list[i].age) === -1) {
list[i].sort = 2;
} else {
list[i].sort = 1;
}
}
console.log('aa', list)
return list;
}
以下为反思:之前有用双重for循环,然后里面用if,else的判断,return返回时,只会返回外循环最后一个,内循环所有内容,导致数据不正确。
//这是错误写法代码!!!这是错误写法代码!!!这是错误写法代码!!!
var data = [21, 40, 55, 60, 32];
var msg = [{ name: 'zhansan', age: 40 }, { name: 'lisi', age: 66 }, { name: 'wangwu', age: 21 }, { name: 'xiaohong', age: 20 }];
for (var i = 0; i < msg.length; i++) {
for (var j = 0; j < data.length; j++) {
if (msg[i].age == data[j]) {
msg[i].car = '宝马';
} else {
msg[i].car = '奔驰';
}
}
}
console.log(msg)
return msg;
如果只有一个条件判断if,还是可以实现添加单独的。