JSFiddle - React, Tailwind, and code Playground
HTML
<div id="jobs">
<input v-model="freetext" id="freetext" type="text" placeholder="טקסט חופשי..."/>
<div>
{{filtered_data}}
</div>
</div>
JavaScript
function filtertextByAnyField(arr, search){
return arr.filter(a => {
for(var prop in a)
if(a[prop] == search || (a[prop].includes && a[prop].includes(search)))
return true;
});
}
new Vue({
el: '#jobs',
data: {
data: [ {A:1,B:2}, {A:3,B:2,C: 1}, {A:4,B:5}, {A:1,B:2},[{A:1,B:2}, {A:2,B:"world"}, {A:3,B:2,C: 1}, {A:4,B:5}, {A:1,B:2}],[ {A:1,B:2}, {A:2,B:"world"}, {A:3,B:2,C: 1}, {A:4,B:5}, {A:1,B:2},[{A:1,B:2}, {A:2,B:"world"}, {A:3,B:2,C: 1}, {A:4,B:5}, {A:1,B:2}]]],
freetext:'',
},
computed:{
filtered_data(){
return filtertextByAnyField(this.data, this.freetext );
}}
});