如何取出所有的 projectList,放到一个新的数组中,
自己写了循环,然后遍历 list, 只拿到最后的两条数据,请问这里应该怎么写
for(var j = 0;j < data.length;j++){
this.list = data[j].projectList
}
如何取出所有的 projectList,放到一个新的数组中,
自己写了循环,然后遍历 list, 只拿到最后的两条数据,请问这里应该怎么写
for(var j = 0;j < data.length;j++){
this.list = data[j].projectList
}
let temp=[];
for(var j = 0;j < data.length;j++){
temp.push(...data[j].projectList)
}
this.list=temp;
因为projectList本身就是一个数组,不知道你是想把整个projectList当做list中的一个元素,还是取出每个projectList中的每个元素,当做list的元素。如果是第一种,可以使用map(reduce等也可以,没map简单明了),第二种可以使用reduce
//把整个projectList数组当做一个子元素
this.list = data.map(item => item.projectList)
//或者
this.list = data.reduce((arr, item) => {
//展平projectList中的每个元素
arr = arr.concat(item.projectList)
//把整个projectList数组当做一个子元素
arr.push(item.projectList)
return arr
}, [])
let newList = this.tableData1.map(item => item.projectList)
console.log(newList, 'newList') //这是把所有的projectList拿出来放到newList数组
var sumData = []
newList.forEach(element => {
sumData = sumData.concat(element)
})
console.log(sumData, 'sumData') //这是把所有数组合并成一个
data() {
return {
tableData1: [
{
id: 1,
date: '2016-05-02',
projectList: [{ projectNo: '16633211' }, { projectNo: '2253214' }]
},
{
id: 2,
date: '2016-05-04',
projectList: [{ projectNo: '331121' }, { projectNo: '4412312' }]
},
{
id: 3,
date: '2016-05-01',
hasChildren: true,
projectList: [{ projectNo: '552514' }, { projectNo: '6685547' }]
},
{
id: 4,
address: '上海市普陀区金沙江路 1516 弄',
projectList: [{ projectNo: '772395412' }, { projectNo: '88562148544' }]
}
]
}
},
你的题意应该是去除列表中每项的projectList中的元素放到一个数组中,也就是展平projectList吧。
你的只有最后两项是因为你this.list =
每次循环都覆盖了list,按照你的写法改最简单的就是
this.list = []
for(var j = 0;j < data.length;j++){
this.list.push(data[j].projectList)
}
解决的方法还是有很多的,用两层 forEach() 也可以
data.forEach((item) => {
item.projectList.forEach((its) => {
this.list.push(its);
})
})
在这里感谢大家的热心解答,自己平时还是要多练啊
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.4k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
6 回答1.2k 阅读
上面是一些 ES6 的写法。下面开始说你这个怎么整
看你的代码,你重新给list赋值了,数组赋值应该用什么?push