Javascript:如何打印出对象和数组参数

时间:2017-03-03 14:11:51

标签: javascript arrays

我有一个Javascript问题;我想知道是否可以打印出一个对象后跟参数作为数组?这是我到目前为止所做的:

var index;
var items = ('a', ['b', 'c']);

for (index = 0; index < items.length; ++index) {
    demoP.innerHTML = demoP.innerHTML + items[index] + "<br>"; 
}

打印出来: b ç

但是,我想打印出来: 一个 b ç

欢迎任何建议!

4 个答案:

答案 0 :(得分:2)

描述

items定义错误,因此未包含'a'

<强>演示

var items = ('a', ['b', 'c']);
console.log(items);

//which is being run like this...but since we are logging after it is done we don't see `a` at all
var items = (console.log('a'), console.log(['b', 'c']))

注意:对象定义为{}而不是(),它还需要key: value每个项目

更改

var items = ['a', ['b', 'c']];
console.log(items);

修复

方法1

var numbers = ['a', ['b', 'c']];
var demoP = document.getElementById('demoP');

demoP.innerHTML = [].concat.apply([], numbers).join('<BR/>');
<div id="demoP"></div>

方法2

var index;
var numbers = ['a', ['b', 'c']];
var demoP = document.getElementById('demoP');
var result = '';

iterateItems(numbers);

demoP.innerHTML = result;

function iterateItems(arr) {
  for (var index = 0, length = arr.length; index < length; ++index) {
    if( Object.prototype.toString.call( arr[index] ) === '[object Array]' ) {
      iterateItems(arr[index]);
    } else {
      result += arr[index] + "<br>"; 
    }
  } 
}
<div id="demoP"></div>

答案 1 :(得分:0)

您可以将数值更改为以下数组元素吗?

var numbers = [&#39; 3&#39;,[&#39; 4&#39;,&#39; 10&#39;]];

希望这将解决你的问题:

<div id="demoP"></div>
<br><br>
<script>
var index;
var numbers = ['3', ['4', '10']];

for (index = 0; index < numbers.length; index++) {
    demoP.innerHTML = demoP.innerHTML + numbers[index] + "<br>"; 
}
</script>
</p>

结果: enter image description here

执行在线代码的参考:http://js.do/code/139843

答案 2 :(得分:0)

据我所知

var numbers = ('3', ['4', '10']);

使用逗号运算符,首先计算'3',然后计算['4','10']并返回结果作为结果。括号似乎没有进一步的效果。

所以它似乎等同于

var numbers = ['4', '10'];

答案 3 :(得分:0)

您正在处理comma operator,以及声明数组的错误方法。这一行

var numbers = ('3', ['4', '10']);

为数字指定3,然后向右计算,并在重新覆盖数字后立即进行计算,并将数组['4', '10']指定给变量。

因此,这将记录['4', '10']

&#13;
&#13;
var numbers = ('3', ['4', '10']);
console.log(numbers);
&#13;
&#13;
&#13;

由于您的目的是打印3,4,10 - 一个简单的数组将会这样做:

&#13;
&#13;
var index;
var items = ['3', '4', '10'];

for (index = 0; index < items.length; index++) {
    demoP.innerHTML = demoP.innerHTML + items[index] + "<br>"; 
}
&#13;
<div id="demoP"></div>
&#13;
&#13;
&#13;