Javascript - 用新项目替换数组/对象中的项目



有两个数组。

data = [["hi","0"],["hello","1"],["world","2"]]
dataNumbers = ["0","2","1"]

如何将数据中的0,1,2 替换为数据数字中的值?

更换后,

data = [["hi","0"],["hello","2"],["world","1"]]

在这里,

{"data":[["hi","0"],["hello","1"],["world","2"]],"dataNumbers":["0","2","1"]}

如何将数据中的数字替换为数据数字?

更换后,

{"data":[["hi","0"],["hello","2"],["world","1"]],"dataNumbers":["0","2","1"]}

对于这两种情况,都可以使用map()函数。

let data = [["hi","0"],["hello","1"],["world","2"]];
let dataNumbers = ["0","2","1"];
let newData = data.map(function(item,index){
item[1] = dataNumbers[index];
return item;
});
console.log(newData);
let obj = {"data":[["hi","0"],["hello","1"],["world","2"]],"dataNumbers":["0","2","1"]};
obj.data = obj.data.map(function(item,index){
item[1] = obj.dataNumbers[index];
return item;
});
console.log(obj);

试图实现这样的事情?

var data = [
["hi", "0"],
["hello", "1"],
["world", "2"]
];
var dataNumbers = ["0", "2", "1"];
const IDX_DESIRED_NUM = 1;
for (var i = 0; i < data.length; i++) {
data[i][IDX_DESIRED_NUM] = dataNumbers[i];
}
console.log(data);

你想要这样的东西吗:

var data = [["hi","0"],["hello","1"],["world","2"]];
var dataNumbers = ["0","2","1"]
for(var i=0;i<data.length;i++){
data[i][1]=dataNumbers;

}
console.log(data);

您可以迭代目标数组并在同一索引处分配源数组的值。

var object = { data: [["hi", "0"], ["hello", "1"], ["world", "2"]], dataNumbers: ["0", "2", "1"] };
object.data.forEach((a, i) => a[1] = object.dataNumbers[i]);
console.log(object);
.as-console-wrapper { max-height: 100% !important; top: 0; }

最新更新