2016-08-24 5 views
0

Я ожидал бы это:При нажатии массива в другой, как предотвратить сглаживание?

var x = [1,2]; 
var y = [3,4]; 
x.push(y); 
x 

, чтобы получить это:

[1,2,[3,4]] 

Но некоторые реализации (1) дают это:

[1,2,3,4] 

Почему? И как я могу получить первый результат?

  1. InDesign 8.1 ExtendScript; некоторые '/usr/bin/js' на OSX 10.10.5, которые я не могу идентифицировать (не отвечает на man, version() или --version).
+4

Он должен уступить первый результат, если вы не используете 'concat' –

+1

. Пожалуйста, поделитесь с нами именем этого браузера. –

+0

Я получаю это, используя либо • InDesign 8.1 ExtendScript; • a/usr/bin/js, который я не могу определить, на OSX 10.10.5. Я только что пробовал в Chrome и получил первый результат. –

ответ

0

Если вы запустите этот код, вы получите первый результат ([1,2, [3,4]]), но если вы напечатаете это в html, вы увидите в качестве второго результата. Вы можете попробовать, чтобы увидеть его в console.log В этом JSFiddle вы можете попробовать: https://jsfiddle.net/gjLdb4rq/1/ (см журнал консоли)

var x = [1,2]; 
    var y = [3,4]; 
    x.push(y); 
    console.log(x); //here prints in the console the [1,2,[3,4]] 
    document.getElementById('result').innerHTML=x; //here prints in the html the [1,2,3,4] 
+0

Действительно, я неверно истолковал напечатанный результат следующим образом: 'var x = [1,2]; var y = [3,4]; x.push (у); x [2] ' дает [3,4], как ожидалось. На самом деле никаких скобок не было выпущено вообще, что вводило в заблуждение. –

0

Это делает выход первый результат:

[1,2,[3,4]] 

 Смежные вопросы

  • Нет связанных вопросов^_^