js list merge
结果用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var authorsIllustrators = [] var bookAuthors = curBookDict[ "author" ][ "bookAuthors" ] console.log( "bookAuthors=" , bookAuthors) if (bookAuthors) { authorsIllustrators.concat(bookAuthors) } console.log( "authorsIllustrators=" , authorsIllustrators) var illustrators = curBookDict[ "author" ][ "illustrators" ] console.log( "illustrators=" , illustrators) if (illustrators) { authorsIllustrators.concat(illustrators) } console.log( "authorsIllustrators=" , authorsIllustrators) var authorsIllustratorsStr = listToStr(authorsIllustrators) console.log( "authorsIllustratorsStr=" , authorsIllustratorsStr) |
输出:
1 2 3 4 5 6 | book_detail.js:130 bookAuthors= [ "Audrey Wood" ] 11:22:30.957 book_detail.js:134 authorsIllustrators= [] 11:22:30.958 book_detail.js:136 illustrators= [] 11:22:30.959 book_detail.js:140 authorsIllustrators= [] 11:22:30.960 book_common.js:24 listToStr: listValue=[] 11:22:30.961 book_detail.js:142 authorsIllustratorsStr= |
竟然第一次空数组contact一个有值的数组,结果是空
-》看来是不支持空数组
改为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | var authorsIllustrators = [] var bookAuthors = curBookDict[ "author" ][ "bookAuthors" ] console.log( "bookAuthors=" , bookAuthors) if (bookAuthors) { authorsIllustrators = bookAuthors } console.log( "authorsIllustrators=" , authorsIllustrators) var illustrators = curBookDict[ "author" ][ "illustrators" ] console.log( "illustrators=" , illustrators) if (illustrators) { if (authorsIllustrators) { authorsIllustrators = illustrators } else { authorsIllustrators.concat(illustrators) } } console.log( "authorsIllustrators=" , authorsIllustrators) var authorsIllustratorsStr = listToStr(authorsIllustrators) console.log( "authorsIllustratorsStr=" , authorsIllustratorsStr) |
竟然也不对:
1 2 3 4 | bookAuthors= [ "Audrey Wood" ] 11:25:25.080 book_detail.js:134 authorsIllustrators= [ "Audrey Wood" ] 11:25:25.081 book_detail.js:136 illustrators= [] 11:25:25.082 book_detail.js:144 authorsIllustrators= [] |
js merge empty list
后来改为:
1 2 | authorsIllustrators = authorsIllustrators.concat(bookAuthors) authorsIllustrators = authorsIllustrators.concat(illustrators) |
即可:
1 2 3 | bookAuthors= [ "Audrey Wood" ] 11:29:51.980 book_detail.js:132 illustrators= [] 11:29:51.982 book_detail.js:150 authorsIllustrators= [ "Audrey Wood" ] |
【总结】
此处用:
1 2 3 | var authorsIllustrators = [] authorsIllustrators = authorsIllustrators.concat(bookAuthors) authorsIllustrators = authorsIllustrators.concat(illustrators) |
即可实现数组合并,且也支持其中任意一个数组为空
而前面之所以:
1 2 3 | if (bookAuthors) { authorsIllustrators.concat(bookAuthors) } |
出错,是因为:
忘了把合并后的数组返回给原先的变量。。。。
转载请注明:在路上 » 【已解决】js中如何合并两个数组且支持空数组合并