Tracing an array with "for in" Man in Safari will be unhappy.

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.min.js "></script>
<p>for in (before): [<b id="before"></b>]</p>
<p>for in (after): [<b id="after"></b>]</p>
<p>map: [<b id="map"></b>]</p>

JavaScript

var p1 = document.querySelector('#before')
var p2 = document.querySelector('#after')
var p3 = document.querySelector('#map')

var v = new Vue({ data: { array: null } })

var a = [0, 1, 2]

var b1 = []
for(var i in a){ b1.push(a[i]) }
p1.innerHTML = b1.join(', ')

v.$set('array', a) // 閾

var b2 = []
for(var i in a){ b2.push(a[i]) }
p2.innerHTML = b2.join(', ')

p3.innerHTML = a.map(function(n){ return n }).join(', ')