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 数组显示问题的主要内容,如果未能解决你的问题,请参考以下文章

Angular.js ng-repeat 数组显示为 json

IE浏览器 JS二维数组显示undefined?

Vue JS如何垂直显示数组中的内部单词

在 Vue.js 中显示数组中列表的全部内容

使用 JS 数组突出显示特定类中的单词

(8)VUE数组循环渲染图片不显示问题