js從一個(gè)數(shù)組中取n個(gè)數(shù)义郑,從第n個(gè)數(shù)開始蝶柿,與之相鄰的前和后各取一半丈钙;若前面不夠一半時(shí),從后面補(bǔ)上交汤,若后面不夠一半時(shí)雏赦,從前面補(bǔ)上劫笙。
<html>
<body>
<script type="text/javascript">
var index = 15
var howmany = 10
var start = 0
var end = start + howmany
var arr = '1234567890abcde67890'
var length = arr.length
var half = howmany / 2
var diffBefore = index - half // 當(dāng)前項(xiàng)往前推N個(gè)數(shù)
var diffAfter = length - (index + half) // 當(dāng)前項(xiàng)往后推N個(gè)數(shù)
if(diffBefore < 0) {
// 當(dāng)前項(xiàng)小于要取的數(shù)量的一半
start = 0
} else {
start = diffBefore
end = index + half
}
if(diffAfter < 0) {
start = diffBefore + diffAfter
}
document.write(arr + "<br />")
document.write(arr.slice(start, end) + "<br />")
</script>
</body>
</html>
輸出結(jié)果
1234567890abcde67890
abcde67890