Javascript - 多维设置值不起作用

Javascript - multidimensional set value not working

本文关键字:不起作用 设置 Javascript      更新时间:2023-09-26
var myArray = [];
myArray[0].binary = 'qweqwe';
myArray[0].src    = 'qweqwe';
myArray[1].binary = 'zxczxc';
myArray[1].src    = 'zxczxc';
myArray[2].binary = 'asdasd';
myArray[2].src    = 'asdasd';
console.log(myArray);

请帮帮我...这不起作用为什么?还有其他解决方案吗?因为我非常需要它...请快点需要它..

myArray[0].binary = 'qweqwe'; ? 您正在设置未定义的属性binary

因此,请尝试以下操作

var myArray = [];
myArray[0] = {}
myArray[0]["binary"] = 'qweqwe';
myArray[0]["src"]    = 'qweqwe';
myArray[1] = {}
myArray[1]["binary"] = 'zxczxc';
myArray[1]["src"]    = 'zxczxc';
myArray[2] = {}
myArray[2]["binary"] = 'asdasd';
myArray[2]["src"]    = 'asdasd';

当您访问不存在的数组条目时,您会得到值 undefined 。您的代码正在尝试将属性添加到 undefined ,您无法这样做(您会得到一个TypeError(。

若要将对象添加到数组中,请添加对象,可能使用对象初始值设定项:

var myArray = [];
myArray[0] = {
    binary: 'qweqwe',
    src: 'qweqwe'
};
myArray[1] = {
    binary: 'zxczxc',
    src: 'zxczxc'
};
myArray[2] = {
    binary: 'asdasd',
    src: 'asdasd'
};
console.log(myArray);

实际上,您可以将它们与数组初始值设定项结合使用:

var myArray = [
    {
        binary: 'qweqwe',
        src: 'qweqwe'
    },
    {
        binary: 'zxczxc',
        src: 'zxczxc'
    },
    {
        binary: 'asdasd',
        src: 'asdasd'
    }
];
console.log(myArray);

。这可能更清晰,并且具有使重新排序它们更容易一些的优点(例如,在源代码中,如果您需要将它们放在不同的初始顺序中(。或者,您可以使用push更轻松地对它们进行重新排序:

var myArray = [];
myArray.push({
    binary: 'qweqwe',
    src: 'qweqwe'
});
myArray.push({
    binary: 'zxczxc',
    src: 'zxczxc'
});
myArray.push({
    binary: 'asdasd',
    src: 'asdasd'
});
console.log(myArray);

这些作品中的任何一个,选择最适合你正在做的事情。

或者干脆像这样:

// SET all at once
var myArray = [
 {binary:"qweqwe", src:"qweqwe"},
 {binary:"zxczxc", src:"zxczxc"},
 {binary:"asdasd", src:"asdasd"}
];
// ADD new key
myArray[3] = {binary:"ioioio", src:"ioioio"};
alert(console.log(myArray);

PS:"反对投票"是因为您在发布问题之前没有真正尝试解决问题。 Js 中的数组和对象是一个基本主题,可以在 Web 上随处找到;)