js 数组显示问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 数组显示问题相关的知识,希望对你有一定的参考价值。
新人小白遇到了一个问题,就是js显示不对,也不知道是我代码问题还是其他问题,举个简化的例子,就是类似像下面这样,我想要浏览器分别跳出来数组里第一个,第二个字符串“tom”,“jerry”,但是最后浏览器却显示了“t”,“o”,也就是说他把“tom”的“t”作为了name【0】的值,“tom”的“o”作为了name【1】的值,就等于这样顺着来了,难道name【0】不应该是“tom”么,求解答!
1、问题不在于你数组的赋值方法。var x =[] ,这样的数值初始化方法是OK。
2、问题在于你的变量名,name 这个词在 javascript 中有特殊的含义。不要用name 作为数组名称,使用其他变量名称即可。
3、具体代码如下所示。
参考技术A name就类似于关键字一样,你数组的名字尽量不要用这些,你换一个正常点的不就好了吗?比如nameArray这样的使用 knockout.js 在对象数组中按未知索引显示对象
【中文标题】使用 knockout.js 在对象数组中按未知索引显示对象【英文标题】:displaying an object by unknown index in object array using knockout.js 【发布时间】:2018-09-19 18:06:36 【问题描述】:我有一个需要使用 Knockout.js 的对象数组:
array([
name: apple, ID: 100 ,
name: orange, ID: 200,
name: banana, ID: 300
]);
数组是动态的,因为在一天中的任何时候,每一行都可以改变位置或索引(但行的内容保持不变),例如:
array([
name: orange, ID: 200,
name: apple, ID: 100,
name: banana, ID: 300
]);
我想将“apple”的显示名称更改为“peach”,而不管该行在白天可能会移动到哪里。我尝试了以下代码,但这似乎不起作用:
ko.utils.arrayForEach(array.rowItems, function(item,index)
if(item = array.rowItems.ID = 100))
return array.rowItems[item = (array.rowItems.ID = 100)].name = "peach");
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/2.0.0/knockout-min.js"></script>
有人有什么建议吗?我也尝试过使用 indexOf 和 findIndex。
【问题讨论】:
属性名是变量还是字符串?也许您缺少引号? 我不明白为什么你一直在到处写item = array.rowItems.ID = 100
。我建议您删除代码中未使用的item
分配,并使用==
进行比较
什么是 rowItems?
【参考方案1】:
如果您的目标只是在数组中循环项目,那么您可以使用以下解决方案。
var array = [
name: "apple", ID: 100 ,
name: "orange", ID: 200,
name: "banana", ID: 300
]
ko.utils.array.forEach(array, function(item, index)
if(item.ID === 100)
item.name = "peach";
);
您不需要在 forEach 项目回调中引用该数组,因为您只是在更新循环中每个项目的属性。
【讨论】:
以上是关于js 数组显示问题的主要内容,如果未能解决你的问题,请参考以下文章