JavaScript 改变行中的元素并在不同的行中打印它们
JavaScript Change elements in line and print them in different lines
我有这段代码可以找到匹配的名称并将它们更改为其他名称。
但是它们每次都在同一行中发生变化。
var names1 = ["Rui", "Jose", "Carlos", "Miguel"];
var names2 = ["Rui", "Tiago", "Jose", "Carlos", "Rogerio"];
for (var i = 0; i < names1.length; i++) {
for (var j = 0; j < names2.length; j++) {
if (names1[i] == names2[j]) {
names2[j] = "Maria", "Fred";
}
}
}
console.log(names2);
我想知道如何在不同的行中打印它们。
因为它显示是这样的:
玛丽亚弗雷德
蒂亚戈
玛丽亚弗雷德
玛丽亚弗雷德
罗杰里奥
我想要:
玛丽亚,
弗雷德,
蒂亚戈,
罗杰里奥。
你能帮帮我吗?
而不是
console.log(names2)
试试这个
for (var i = 0; i < names2.length; i++) {
console.log(names2[i]);
}
试试这个:
var names1 = ["Rui", "Jose", "Carlos", "Miguel"];
var names2 = ["Rui", "Tiago", "Jose", "Carlos", "Rogerio"];
var matchFound = false;
for (var i = 0; i < names1.length; i++) {
for (var j = 0; j < names2.length; j++) {
if (names1[i] == names2[j] && matchFound === false) {
// when the name matches, print Maria and Fred in 2 different lines
console.log("Maria,");
console.log("Fred,");
matchFound = true;
} else { // if name doesn't match, just print the element from 2nd array
console.log(names2[j]");
}
}
}
如果找到匹配的名称,您可以使用数组来交换名称,并使用索引插入更改后的名称。
var names1 = ["Rui", "Jose", "Carlos", "Miguel"],
names2 = ["Rui", "Tiago", "Jose", "Carlos", "Rogerio"],
matched = ["Maria", "Fred"],
index = 0,
i, j;
outer: for (j = 0; j < names2.length; j++) {
for (i = 0; i < names1.length; i++) {
if (names1[i] == names2[j]) {
names2[j] = matched[index++];
index %= matched.length;
continue outer;
}
}
}
console.log(names2);
要加快检查速度,您可以使用哈希 table 并对照它进行检查。
var names1 = ["Rui", "Jose", "Carlos", "Miguel"],
names2 = ["Rui", "Tiago", "Jose", "Carlos", "Rogerio"],
matched = ["Maria", "Fred"],
index = 0,
hash = Object.create(null);
names1.forEach(function (a) {
hash[a] = true;
});
names2.forEach(function (a, i, aa) {
if (hash[a]) {
aa[i] = matched[index++];
index %= matched.length;
}
});
console.log(names2);
在下面的例子中,我认为应该从一些来源中选择随机名称
var names1 = ["Rui", "Jose", "Carlos", "Miguel"];
var names2 = ["Rui", "Tiago", "Jose", "Carlos", "Rogerio"];
var random_names = ['Maria', 'Fred', 'Someother']
var random_names_counter = 0;
for (var i = 0; i < names1.length; i++) {
for (var j = 0; j < names2.length; j++) {
if (names1[i] == names2[j]) {
names2[j] = random_names[random_names_counter++];
}
}
}
console.log(names2);
我有这段代码可以找到匹配的名称并将它们更改为其他名称。 但是它们每次都在同一行中发生变化。
var names1 = ["Rui", "Jose", "Carlos", "Miguel"];
var names2 = ["Rui", "Tiago", "Jose", "Carlos", "Rogerio"];
for (var i = 0; i < names1.length; i++) {
for (var j = 0; j < names2.length; j++) {
if (names1[i] == names2[j]) {
names2[j] = "Maria", "Fred";
}
}
}
console.log(names2);
我想知道如何在不同的行中打印它们。 因为它显示是这样的:
玛丽亚弗雷德
蒂亚戈
玛丽亚弗雷德
玛丽亚弗雷德
罗杰里奥
我想要:
玛丽亚,
弗雷德,
蒂亚戈,
罗杰里奥。
你能帮帮我吗?
而不是
console.log(names2)
试试这个
for (var i = 0; i < names2.length; i++) {
console.log(names2[i]);
}
试试这个:
var names1 = ["Rui", "Jose", "Carlos", "Miguel"];
var names2 = ["Rui", "Tiago", "Jose", "Carlos", "Rogerio"];
var matchFound = false;
for (var i = 0; i < names1.length; i++) {
for (var j = 0; j < names2.length; j++) {
if (names1[i] == names2[j] && matchFound === false) {
// when the name matches, print Maria and Fred in 2 different lines
console.log("Maria,");
console.log("Fred,");
matchFound = true;
} else { // if name doesn't match, just print the element from 2nd array
console.log(names2[j]");
}
}
}
如果找到匹配的名称,您可以使用数组来交换名称,并使用索引插入更改后的名称。
var names1 = ["Rui", "Jose", "Carlos", "Miguel"],
names2 = ["Rui", "Tiago", "Jose", "Carlos", "Rogerio"],
matched = ["Maria", "Fred"],
index = 0,
i, j;
outer: for (j = 0; j < names2.length; j++) {
for (i = 0; i < names1.length; i++) {
if (names1[i] == names2[j]) {
names2[j] = matched[index++];
index %= matched.length;
continue outer;
}
}
}
console.log(names2);
要加快检查速度,您可以使用哈希 table 并对照它进行检查。
var names1 = ["Rui", "Jose", "Carlos", "Miguel"],
names2 = ["Rui", "Tiago", "Jose", "Carlos", "Rogerio"],
matched = ["Maria", "Fred"],
index = 0,
hash = Object.create(null);
names1.forEach(function (a) {
hash[a] = true;
});
names2.forEach(function (a, i, aa) {
if (hash[a]) {
aa[i] = matched[index++];
index %= matched.length;
}
});
console.log(names2);
在下面的例子中,我认为应该从一些来源中选择随机名称
var names1 = ["Rui", "Jose", "Carlos", "Miguel"];
var names2 = ["Rui", "Tiago", "Jose", "Carlos", "Rogerio"];
var random_names = ['Maria', 'Fred', 'Someother']
var random_names_counter = 0;
for (var i = 0; i < names1.length; i++) {
for (var j = 0; j < names2.length; j++) {
if (names1[i] == names2[j]) {
names2[j] = random_names[random_names_counter++];
}
}
}
console.log(names2);