2

Solved: Replace array-mapped variables with the actual variable name/string?

I'm trying to decode some JS and I've got a good portion of it done, however, I'm stumped here. The code does something like this:

var arr = ["value", "value1", "value2"];
console.log(arr[0]);

Except the file is around 12k lines and there are over 1.4k things in the array. Is there a way I can replace arr[0] with the actual value of arr[0] (in the example, it would be "value"), then save the file? I tried using RegExp but got nowhere.

Any help will be appreciated.

Community
  • 1
  • 1
Eli Richardson
  • 934
  • 7
  • 25

1 Answers1

1

A simple idea would be having arrays in current scope and use target javascript file content as input string for replace() method:

var arr = ['hello', 'my', 'world']
var str = `
var arr = ['hello', 'my', 'world']
console.log('arr[2]')
console.log('arr[0]')
console.log('arr[1]')
`
console.log(str.replace(/\b(\w+)\[(\d+)]/g, function(match, $p1, $p2) {
   return window[$p1][$p2];
}))

revo
  • 47,783
  • 14
  • 74
  • 117